python - 使用 Python 读取 JSON 文件
问题描述
我有一个名为“elements.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}
]
我有一个名为“test.py”的 Python 文件:
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。
[
{"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 代码是正确的。
您的ldraw
和lgeo
值看起来像十六进制;JSON 不支持十六进制,你必须自己做额外的工作。
[编辑:他们不是]
推荐阅读
- reactjs - react-hook-form 表单中的表单
- python - 查找第一个值并返回列表中的第二个值
- python - 打印 python ceasar cypher 时的间距问题
- queue - ServiceBusTrigger 在连续网络作业上使用 ReceiveDelete
- java - 将 kotlin 项目从 pom.xml 转换为 build.gradle
- python - 如何对数据进行分类以获得树状结构
- python - 在我写的一篇文章上运行 QA,我不知道为什么最后一个 if 语句不会返回任何东西
- sql - 根据条件和相同的主键将一个表中的金额带入另一个表
- windows - Windows 批处理脚本、快捷方式和其他非实时 cmd 方法真的需要双与号 (&&) 吗?
- mysql - 如何使用 msum 仅对 DolphinDB 中的正数求和