【发布时间】:2020-09-29 04:07:15
【问题描述】:
我有一个格式错误的 JSON 文件,其中的数字带有前导零。
p = """[
{
"name": "Alice",
"RegisterNumber": 911100020001
},
{
"name": "Bob",
"RegisterNumber": 000111110300
}
]"""
arc = json.loads(p)
我收到此错误。
JSONDecodeError: 需要 ',' 分隔符:第 8 行第 24 列(字符 107)
这是 char 107 上的内容:
print(p[107])
#0
问题是:这是我拥有的数据。这里我只展示两个例子,但是我的文件有数百万行要解析,我需要一个脚本。归根结底,我需要这个字符串:
"""[
{
"name": "Alice",
"RegisterNumber": "911100020001"
},
{
"name": "Bob",
"RegisterNumber": "000111110300"
}
]"""
我该怎么做?
【问题讨论】:
-
错误消息指出错误在哪里,前导零不是问题。
-
提示:根据错误消息,需要逗号分隔符。
-
我用新的可运行代码更新了代码,但错误仍然存在。
-
@lispguy,你忘了提新的错误信息..
-
哇,这在 java 中解析甚至很危险,因为它可能被解释为八进制数(由于前导零)。然后将其解释为十进制数字并简单地用零填充会弄乱寄存器编号。