我想在python中加載json文件。我的json文件如下所示:在python中加載json文件
{'awesomeness': 2.5, 'party': 'Republican', 'Age': 50, 'State': 'California', 'Ideology': 0.5,
'time': {'day': 20, 'mon': 2, 'sec': 3}, 'overall': 9.5, 'review': 'Best Senator ever\tPretty balanced
view.\tNot sure if he can get reelected'}
{'awesomeness': 0.5, 'party': 'Republican', 'Age': 70, 'State': 'New York', 'Ideology': 0.8,
'time': {'day': 25, 'mon': 8, 'sec': 31}, 'overall': 5.5, 'review': 'NA'}
這是我的代碼。
with open("senator.json") as json_file:
data = json.load(json_file)
,但我得到以下錯誤,
File "<stdin>", line 1, in <module>
File "<string>", line 2, in <module>
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 365, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/json/decoder.py", line 381, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 1 column 2 (char 1)
爲什麼我得到這個錯誤,我怎麼能加載此文件?謝謝你的幫助!
這可能與您的JSON在單引號中有關。有效的JSON帶有雙引號。嘗試通過美化你的JSON(http://jsonformatter.curiousconcept.com/),如果它返回錯誤,那麼你的問題。 – Jordan
也在這裏標記解決方案。如果你想讓你的文件成爲json,你可以使用ast.literal_eval來加載一次,然後將json.dumps(value)再次加入到文件中,使其成爲有效的JSON。 literal_eval不應該用來加載像這樣的字符串,所以請自己幫忙併將其轉換 - 它將爲您節省頭痛 – Jordan