gpt4 book ai didi

python - JSON 解码字符串

转载 作者:太空宇宙 更新时间:2023-11-03 19:09:44 24 4
gpt4 key购买 nike

我正在尝试使用解码 JSON 字符串

json.loads(request.POST.get('d'))

其中 d 是包含 JSON 字符串的 POST 参数。

我在堆栈跟踪中收到以下错误:

ValueError: Unterminated string starting at: line 1 column 22 (char 22)

这是 JSON 字符串:

{"data":{"40":{"html":"<span style=\"color:#ffffff;\">test</span>","background":"transparent"},"41":{"html":"","background":"transparent"},"42":{"html":"","background":"transparent"}},"action":"save"}

但是,如果我不在 data->40->html 中应用 span 标签,它就会起作用

{"data":{"40":{"html":"test","background":"transparent"},"41":{"html":"","background":"transparent"},"42":{"html":"","background":"transparent"}},"action":"save"}

这里有什么问题吗?

最佳答案

我想源字符串中有一些带有反斜杠的内容。

当我解析时

"""{"data":{"40":{"html":"<span style=\"color:#ffffff;\">test</span>","background":"transparent"},"41":{"html":"","background":"transparent"},"42":{"html":"","background":"transparent"}},"action":"save"}""" 

使用 json.loads() 时,它会失败并出现类似的错误。

但是,当我禁用转义序列(r'' 字符串文字)时,它会起作用:

r"""{"data":{"40":{"html":"<span style=\"color:#ffffff;\">test</span>","background":"transparent"},"41":{"html":"","background":"transparent"},"42":{"html":"","background":"transparent"}},"action":"save"}"""

显然,当您构造字符串时,字符串中的 '\"' 会被转义并导致 '"' ,可能是在 JS(?) 中。还没有看到构建它的代码,但尝试添加一个额外的反斜杠:'\\"'

更新:您可以将字符串中的 r'\' 替换为 r'\\'。但最好先了解字符串的外观。当您将字符串正文插入消息时,您从哪里获取它?

关于python - JSON 解码字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13392162/

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