2012-12-02 15 views
2

我想解析下面的Python中的JSON文本,但我得到錯誤, 雖然我能解析這個JSON文本使用Json Viewer 。所以我想我的JSON文本是正確的,有人可以幫助我什麼是錯的?不能解析JSON在Python中,但能夠查看JSON查看器中的文本

import json as j 

data = '{"c":[{"xy":{"xstart":0,"xend":5,"ystart":1,"yend":5},"names":["D","T","O","H","L","C",],"co":["rgb(0,0,128)"]}],"Values":{"D":["11/30/2012"],"T":["09:44:00"],"O":["5848.40"],"H":["5848.40"],"L":["5847.45"],"C":["5848.40"]}}' 
json_data = j.loads(data) 
#print json_data["c"][0] 



Traceback (most recent call last): 
    File "C:json\jsonexample.py", line 4, in <module> 
    json_data = j.loads(data) 
    File "C:\Python27\lib\json\__init__.py", line 326, in loads 
    return _default_decoder.decode(s) 
    File "C:\Python27\lib\json\decoder.py", line 366, in decode 
    obj, end = self.raw_decode(s, idx=_w(s, 0).end()) 
    File "C:\Python27\lib\json\decoder.py", line 384, in raw_decode 
    raise ValueError("No JSON object could be decoded") 
ValueError: No JSON object could be decoded 
+1

因爲這個網站不是很聰明......它是用'eval'而不是'JSON.parse'加載JSON。如果您無法修復輸入,請嘗試使用YAML解析器 – JBernardo

回答

4

它看起來像是你的實際字符串的問題。此行:

"names":["D","T","O","H","L","C",] 

"C"之後有一個額外的逗號。嘗試刪除它,看看它是否按預期工作。

In [1]: import json as j 

In [2]: data = '{"c":[{"xy":{"xstart":0,"xend":5,"ystart":1,"yend":5},"names":["D","T","O","H","L","C"],"co":["rgb(0,0,128)"]}],"Values":{"D":["11/30/2012"],"T":["09:44:00"],"O":["5848.40"],"H":["5848.40"],"L":["5847.45"],"C":["5848.40"]}}' 

In [3]: json_data = j.loads(data) 

In [4]: json_data['c'][0] 
Out[4]: 
{u'co': [u'rgb(0,0,128)'], 
u'names': [u'D', u'T', u'O', u'H', u'L', u'C'], 
u'xy': {u'xend': 5, u'xstart': 0, u'yend': 5, u'ystart': 1}} 
+0

謝謝。是的,發現兩個附加逗號的事件。 – Shakti

+0

@Shakti沒問題,萬事如意。 – RocketDonkey

相關問題