2016-03-02 67 views
0

當我試圖簡單地讀取JSON文件Pandas.read_json時,我被卡住了。當我嘗試使用這個示例數據集時,它很棒。用Python閱讀JSON文件的調試熊貓

import pandas as pd 
df = pd.read_json('sample.json') 

我的示例JSON文件看起來像如下:

[{"field1": "King's Landing", "field2": 4, "field3": "2014-01-25", "field4": 4.7, "field5": 1.1, "field6": "2014-06-17", "field7": "iPhone", "field8": 15.4, "field9": true, "field10": 46.2, "field11": 3.67, "field12": 5.0}, {"field1": "Astapor", "field2": 0, "field3": "2014-01-29", "field4": 5.0, "field5": 1.0, "field6": "2014-05-05", "field7": "Android", "field8": 0.0, "field9": false, "field10": 50.0, "field11": 8.26, "field12": 5.0}, {"field1": "Astapor", "field2": 3, "field3": "2014-01-06", "field4": 4.3, "field5": 1.0, "field6": "2014-01-07", "field7": "iPhone", "field8": 0.0, "field9": false, "field10": 100.0, "field11": 0.77, "field12": 5.0}] 

不幸的是,我只是想簡單地用文件名與我的完整數據集代替,它返回以下錯誤:

Traceback (most recent call last): 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/interactiveshell.py", line 2885, in run_code 
exec(code_obj, self.user_global_ns, self.user_ns) 
    File "<ipython-input-63-02c20a7d81eb>", line 1, in <module> 
df1 = pd.read_json('train.json') 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/json.py", line 210, in read_json 
date_unit).parse() 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/json.py", line 278, in parse 
self._parse_no_numpy() 
    File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pandas/io/json.py", line 495, in _parse_no_numpy 
loads(json, precise_float=self.precise_float), dtype=None) 
    ValueError: Expected object or value 

任何人都可以幫我調試它爲什麼這麼說?

+0

大概是因爲JSON文件中有錯誤。我建議你儘量減少文件一點點,直到你找到導致問題的部分。 – BrenBarn

+1

嘗試'python -c「導入json; json.loads(open('train.json')。read())」'在你的shell中。它應該指出文件中游標在遇到問題時的位置。錯誤與JSON數據有關,而不是'pandas'。 –

回答

1

我猜你有拼寫錯誤的JSON文件名...

下面的腳本給我一模一樣的錯誤消息:

import pandas as pd 

df = pd.read_json('THERE_IS_NO_SUCH_FILE.json') 

您可能還需要驗證您的JSON文件here

如果您的JSON文件太大而無法在線解析,請嘗試以下操作:

python -m json.tool your_json_file.json 

它應該告訴你發生第一個解析/驗證錯誤的地方

+0

謝謝MaxU!我相信我使用的是正確的文件名,而我也測試了你所說的並且我也得到了同樣的錯誤,這真的很奇怪。另外,我的實際訓練數據集大於10M,所以我無法在鏈接中進行測試。 :( –

+0

@ChenLi,我已經更新了我的答案,你是否使用「json.tool」檢查過它 - 它有幫助嗎? – MaxU

+0

真的很感謝!這是一個非常有用的工具!而且我的文件確實有語法錯誤。 –