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

Python字典替换true/false为0/1解决NameError问题

解决小写true/false不符合Python语法的问题

你拿到的内容本质是JSON格式字符串,直接当Python字典用会报错,因为Python里布尔值是大写的True/False,而非小写的true/false。给你两种靠谱的处理方式:

方法1:先字符串替换再转字典

把收到的内容先以字符串形式处理,替换小写true/false为1/0,再用安全的ast.literal_eval转成Python字典:

import ast

# 假设你收到的原始内容是字符串形式
response_str = '{"a":"17","b":"4","c":34,"d":65,"e":162,"m":false,"M":true}'
# 替换小写布尔值为数字
processed_str = response_str.replace('false', '0').replace('true', '1')
# 转成Python字典
response = ast.literal_eval(processed_str)
# 现在可正常提取值
print(response["b"])  # 输出: 4

用ast.literal_eval比eval更安全,不会执行恶意代码。

方法2:用JSON模块解析后转换布尔值

JSON语法本身就用小写true/false,直接用Python的json模块解析,再把字典里的布尔值转成1/0:

import json

response_str = '{"a":"17","b":"4","c":34,"d":65,"e":162,"m":false,"M":true}'
# JSON解析后,true转为True,false转为False
response = json.loads(response_str)
# 遍历字典,将布尔值转换为数字
for key, value in response.items():
    if isinstance(value, bool):
        response[key] = 1 if value else 0
# 现在可正常操作字典
print(response["b"])  # 输出: 4

这种方法更规范,适合处理标准JSON格式的内容。

注意:如果你的"接收字典"是指直接拿到了会报错的代码片段,必须先把它转换成字符串再处理——因为直接写response={"a":"17",...,"m":false}在Python里运行时会直接报错,根本到不了替换步骤,所以一定要确保先拿到的是字符串形式的内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 18:27:06