2017-01-25 55 views
0

我正在開發一個數據挖掘項目。我需要從屬於亞馬遜的json格式數據集中讀取數據。
數據集的格式是這樣的:
Json-format dataset 首先,我要提取這些行:
[產品名稱],[評分]
此後,我想寫的行與兩列的csv文件命名作爲產品名稱和評級。有任何方法可以通過使用熊貓庫來實現這一點嗎?如何從json文件中讀取數據並使用pandas將其轉換爲csv?

+2

文件不JSON – Backtrack

+0

你可以添加'json'作爲文本的樣本? – jezrael

+0

還檢查json是否有效 - http://jsonlint.com/ – jezrael

回答

1

對於數據子集,我已將其轉換爲DF。請注意,您擁有的數據不是json格式的數據。

import pandas as pd 
import json 
from collections import defaultdict 
import re 

f=open('inv.json') 
text= f.readlines() 
RowID=[] 
result={} 

for item in text: 
    if item.startswith("###"): 
     RowID=re.findall('\d+', item) 
     result[RowID[0]]={} 
    elif ":" in item: 
     key,value =item.split(":",1) 
     result[RowID[0]][key.strip()]=value.strip() 
df= pd.DataFrame(result) 
print df.transpose() 

樣品輸入

#####1 
[ID]:0 
[ProductId]:0 
[rating]:2.0 

#####2 
[ID]:1 
[ProductId]:2 
[rating]:3.0 
[fullText]:It is a good 
[weburl]:http://example.org:xx 

輸出

 [ID] [ProductId] [fullText] [rating]   [weburl] 
1 0   0   NaN  2.0    NaN 
2 1   2 It is a good  3.0 http://example.org:xx 
+0

我試過你開發的代碼。不幸的是,它會給出錯誤。 ValueError:需要解壓縮的值太多(文件「C:\ Users \ masoud \ Desktop \ Dataset \ data3 \ aa - Copy.py」,第16行,在 key,value = item.split(「:」) 預計2) –

+0

更新了答案,我們期望OP有最低工作投入和預期產出的原因。 – Shijo

+0

工作!謝謝Shiju。你很棒 –

相關問題