我有一个JSON文件叫做'元素.json':
[
{ldraw="003238a",lgeo="003238a",slope=0,anton=0,lutz=0,owen=0,damien=0},
{ldraw="003238b",lgeo="003238b",slope=0,anton=0,lutz=0,owen=0,damien=0},
{ldraw="003238c",lgeo="003238c",slope=0,anton=0,lutz=0,owen=0,damien=0},
{ldraw="003238d",lgeo="003238d",slope=0,anton=0,lutz=0,owen=0,damien=0}
]
我有一个Python文件叫做'测试.py':
import json
with open('elements.json') as json_file:
data = json.load(json_file)
for p in data:
print('ldraw: ' + p['ldraw'])
print('lgeo: ' + p['lgeo'])
从Windows命令行运行时出现以下错误:
Traceback (most recent call last):
File "test.py", line 4, in <module>
data = json.load(json_file)
File "C:\Python27\lib\json\__init__.py", line 278, in load
**kw)
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 382, in raw_decode
obj, end = self.scan_once(s, idx)
ValueError: Expecting property name: line 2 column 2 (char 3)
需要什么属性名?为什么我会出错?你知道吗
您没有遵循JSON规范。详见json.org。你知道吗
您的Python代码是正确的。你知道吗
你的
ldraw
和lgeo
值看起来像十六进制;JSON不支持十六进制,你必须自己做额外的工作。[编辑:它们不是]
您的JSON格式无效,JSON代表JavaScript对象表示法,就像JavaScript对象一样。因此,您应该将“=”替换为“:”。它意味着键值对。你知道吗
错误:
右:
你的档案元素.json不是有效的json文件。 应该是这样的-
相关问题 更多 >
编程相关推荐