gpt4 book ai didi

Python - 将带有转义字符的字符串转换为 json

转载 作者:太空狗 更新时间:2023-10-30 01:00:27 26 4
gpt4 key购买 nike

JSON 对象被打印到我的系统日志文件中。我需要从日志中提取字符串并将其转换为 JSON。我在提取“{”和“}”之间的字符串时没有任何问题,但某些字符串中有转义字符,这导致了 json.loads 失败

问题是:

>>> import json
>>> resp = '{"from_hostname": {"value": "mysite.edu\"", "value2": 0, "value3": 1}}'
>>> json.loads(resp)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
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 , delimiter: line 1 column 41 (char 40)
>>> resp[40]
'"'
>>> resp[41]
','
>>> resp[39]
'"'
>>>

json 看到 \" 我猜它只看到 " 并假设字符串结束,它抛出分隔符错误.

我尝试用 \\" 替换 \" 但这似乎不起作用。

注意:\" 可以出现在字符串的开头、结尾或中间。

我如何让它工作?

最佳答案

如果 \" 可以出现在您的字符串中,您必须使用

转义 \"
import json
resp = '{"from_hostname": {"value": "mysite.edu\\\"", "value2": 0, "value3": 1}}'
print(json.loads(resp))

它打印

{u'from_hostname': {u'value3': 1, u'value2': 0, u'value': u'mysite.edu"'}}

这是对您问题的正确解释吗?

关于Python - 将带有转义字符的字符串转换为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34888467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com