首页 > 解决方案 > json 加载 JSONDecodeError: Expecting ',' 分隔符

问题描述

我的 json 文件有问题,这是我的代码:

import json
x= '{ "receive_time": "2020-06-26T08:04:27+07:00", "services": "", "request_uri": "/", "request_body": "{\x22p\x22:\x22smaet\x22,\x22av\x22:\x225.9.0\x22}"}'
json.loads(x)

详细错误:期待“,”分隔符:第 1 行第 103 列(字符 102)我想要的结果:

{'receive_time': '2020-06-26T08:04:27+07:00',
 'services': '',
 'request_uri': '/',
 'request_body': '{"p":"smaet","av":"5.9.0"}'}

请帮助我,谢谢

标签: jsonpython-3.x

解决方案


的字符串值request_body格式错误。

作为 json 字符串,\x22(双引号)必须有反斜杠转义。 https://www.json.org/json-en.html

反斜杠也是 Python 字符串文字中的转义字符。字符串文字中的转义序列\\表示单个字符\

所以下面的代码

import json
x = '{ "receive_time": "2020-06-26T08:04:27+07:00", "services": "", "request_uri": "/", "request_body": "{\\\x22p\\\x22:\\\x22smaet\\\x22,\\\x22av\\\x22:\\\x225.9.0\\\x22}"}'
print(json.loads(x))

印刷

{'receive_time': '2020-06-26T08:04:27+07:00', 'services': '', 'request_uri': '/', 'request_body': '{"p":"smaet","av":"5.9.0"}'}

推荐阅读