You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中将字符串转换为字典时出现错误,请求技术支持

问题排查与解决方案

咱们先定位转换失败的核心原因,再一步步解决:

常见错误原因

  • 误用eval()而非JSON专用解析器:你字符串里的null是JSON的关键字,但Python里对应的是None,如果用eval(my_string)会直接抛出NameError: name 'null' is not defined,这是最可能触发错误的点。
  • 另外,字符串里URL部分的&是HTML两次转义后的&(&→&→&),虽然这不会导致JSON解析失败,但如果后续需要使用这个URL,会出现链接无法正常访问的问题,这属于额外的清理需求。

解决步骤

步骤1:使用json模块正确解析字符串

Python自带的json模块专门处理JSON格式的字符串,能完美识别null、布尔值等JSON特有语法。代码示例:

import json

my_string='{"values": [["searchText", "aaaa bbbb"], ["url", "https://aaa.com/w/Try.do?one=yes&isFate=true&active=2&entry=aaaa+bbbb"], ["ip", "11.22.333.44, 12.12.3.111"], ["userId", "4569874"], ["id", 69875462145], ["sessionId", "25F8D032D8FGJ5ED023F56ZZ.TRYING207"], ["pageNumber", null], ["dateCreated", "2018-03-06 17:23:55"], ["page_id", 771790], ["dateModified", "2018-03-06 17:23:55"], ["device_id", 168]]}'

# 解析JSON字符串为Python字典
result_dict = json.loads(my_string)
print(result_dict)

执行这段代码就能成功得到字典,其中JSON的null会被自动转换成Python的None。

步骤2:(可选)清理URL中的HTML转义字符

如果需要把URL里的&还原成正常的&,可以用html.unescape()来处理,示例:

import json
import html

my_string='{"values": [["searchText", "aaaa bbbb"], ["url", "https://aaa.com/w/Try.do?one=yes&isFate=true&active=2&entry=aaaa+bbbb"], ["ip", "11.22.333.44, 12.12.3.111"], ["userId", "4569874"], ["id", 69875462145], ["sessionId", "25F8D032D8FGJ5ED023F56ZZ.TRYING207"], ["pageNumber", null], ["dateCreated", "2018-03-06 17:23:55"], ["page_id", 771790], ["dateModified", "2018-03-06 17:23:55"], ["device_id", 168]]}'

result_dict = json.loads(my_string)
# 找到URL对应的项并清理转义字符
for item in result_dict["values"]:
    if item[0] == "url":
        item[1] = html.unescape(html.unescape(item[1]))  # 两次unescape,因为是&
        break

print(result_dict["values"][1][1])
# 输出:https://aaa.com/w/Try.do?one=yes&isFate=true&active=2&entry=aaaa+bbbb

为什么不要用eval()?

eval()会执行字符串里的任意Python代码,不仅不安全(如果字符串来自不可信来源),而且无法兼容JSON和Python的语法差异(比如null vs None,true/false vs True/False),所以处理JSON格式必须用专门的解析器。

内容的提问来源于stack exchange,提问作者kab

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 04:31:03