2013-10-20 22 views
1

我希望有人對開放庫有一些經驗並嘗試解析其可下載的JSON轉儲。我希望能夠解析JSON並將其轉換爲CSV,但遇到了將此JSON轉換爲乾淨格式的問題。格式打開庫JSON轉儲爲可解析的Python

問題是它看起來像這個「JSON」是一些製表符分隔的數據在開始,然後是一些結構化的JSON的混合。

是否有任何公用事業可以清理這種類型的數據或我將不得不寫一些松鼠找&替換腳本?

下面是轉儲(2項)的例子:

/type/author /authors/OL1000057A 2 2008-08-20T17:57:09.66187 {"name": "Kha\u0304lid Muh\u0323ammad \u02bbAli\u0304 al-H\u0323a\u0304jj", "personal_name": "Kha\u0304lid Muh\u0323ammad \u02bbAli\u0304 al-H\u0323a\u0304jj", "last_modified": {"type": "/type/datetime", "value": "2008-08-20T17:57:09.66187"}, "key": "/authors/OL1000057A", "type": {"key": "/type/author"}, "revision": 2} 

/type/author /authors/OL100029A 2 2008-09-08T16:19:17.29978 {"name": "K. Hardono", "personal_name": "K. Hardono", "last_modified": {"type": "/type/datetime", "value": "2008-09-08T16:19:17.29978"}, "key": "/authors/OL100029A", "type": {"key": "/type/author"}, "revision": 2} 

我需要包裝的JSON集列表[]和逗號分隔爲我解析才能正確運行。

感謝代碼清理BTW。

+1

你得到的是CSV數據,其中一個字段是JSON ...所以顯而易見的方法是將其打開爲CSV,提取JSON字段,然後處理它。 –

+0

呃這就是我不期待,但它似乎是唯一可行的選擇。 JSON中的'\ u0304'是什麼,一些特殊字符或編碼? – xXPhenom22Xx

+1

'\ u0304'代表Unicode中的[代碼點](http://codepoints.net/U+0304)。 –

回答

0

你可以使用一個php解析器來達到這個目的。它將所有的數據作爲數據包提供給其他用戶。

使用OPDumpReader用於解析OpenLibrary轉儲

https://github.com/manindersingh030/OLDumpReader

$讀者=新OLReader($ dumpLocation);

var_dump($ reader-> getNextPacket());