Python中的JSON解析错误
我正在使用Python 2.7.6来解析一个JSON文件,但遇到了一个错误,我不太确定原因。这是我第一次接触Python,所以这可能是个很基础的问题。我在Stack Overflow上查了一些资料,但还是搞不清楚哪里出了问题。
这是我用来解析数据的Python代码:
import json
from pprint import pprint
with open ('test.json') as data_file:
data = json.load(data_file);
pprint(data)
这是我的JSON文件:
{"votes": {"funny": 0, "useful": 0, "cool": 0}, "user_id": "hckr9Hf8BUHcXfOSDv9eJA", "review_id": "K6EEJo0I8AbwGWvwe5SJYQ", "stars": 5, "date": "2013-05-05", "text": "This place is fantastic. they have a restaurant inside the grocery store. very good food.", "type": "review", "business_id": "uPezkdNi_x_SwWlf_2rcMw"}
{"votes": {"funny": 0, "useful": 0, "cool": 1}, "user_id": "PK3TxomYLwZuOXonmYqjNw", "review_id": "5ivy-tczAQ4WYrmVF6YoKg", "stars": 5, "date": "2013-08-11", "text": "This is going to be a place we go back to many times!", "type": "review", "business_id": "UB2j_EV3CIM_E4LcpadKMQ"}
这是我在解析JSON时遇到的错误:
File "./parse.py", line 6, in <module>
data = json.load(data_file);
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 290, in load
**kw)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/__init__.py", line 338, in loads
return _default_decoder.decode(s)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 368, in decode
raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 2 column 1 - line 3 column 1 (char 318 - 600)
奇怪的是,如果我只用JSON的第一行,我就能成功解析数据。任何帮助我理解这个错误并修复它的建议都将非常感激。
1 个回答
3
这不是有效的json格式——你不能把两个哈希(对象)直接放在一起。你可以试试这样做。你会注意到我在它们之间加了一个逗号,并把整个哈希集合放在一个数组里。
[
{
"stars" : 5,
"date" : "2013-05-05",
"review_id" : "K6EEJo0I8AbwGWvwe5SJYQ",
"text" : "This place is fantastic. they have a restaurant inside the grocery store. very good food.",
"user_id" : "hckr9Hf8BUHcXfOSDv9eJA",
"type" : "review",
"votes" : {
"funny" : 0,
"cool" : 0,
"useful" : 0
},
"business_id" : "uPezkdNi_x_SwWlf_2rcMw"
},
{
"stars" : 5,
"date" : "2013-08-11",
"review_id" : "5ivy-tczAQ4WYrmVF6YoKg",
"text" : "This is going to be a place we go back to many times!",
"user_id" : "PK3TxomYLwZuOXonmYqjNw",
"type" : "review",
"votes" : {
"funny" : 0,
"cool" : 1,
"useful" : 0
},
"business_id" : "UB2j_EV3CIM_E4LcpadKMQ"
}
]