python - Python3 - 替换 JSON 对象中的值
问题描述
我正在运行一个返回三个键值对的 API 查询:
{'enabled': True, 'recording': False, 'autoDeletion': False}
我需要分别用1
和替换这些值0
,以获得:
{'enabled': 1, 'recording': 0, 'autoDeletion': 0}
我试过使用 json.dumps.replace,但我只是从 JSON 编码器模块中得到一个错误列表,最终导致“TypeError:响应类型的对象不是 JSON 可序列化的”,这就是为什么它在代码中被注释掉的原因。
请问有没有一种简单的方法来实现这个看似微不足道的替换?
这是代码
#Make API request
api_response = requests.request("GET", server + query_endpoint, headers=query_headers, data=query_payload)
#api_test = json.dumps(api_response).replace('"true"','"1"')
print(api_response.json())
输出如下所示:
{'enabled': True, 'recording': False, 'autoDeletion': False}
解决方案
我认为.json()
返回 a dict
,然后这样做,
data = api_response.json()
for k,v in data.items():
data[k] = int(v)
print(data)
输出:
{'enabled': 1, 'recording': 0, 'autoDeletion': 0}
希望有效!
推荐阅读
- rust - 除非在 Rust 中使用 clap 标记,否则如何设置必需
- ajax - 使用 javascript 复制表单注销提交功能
- javascript - 即使添加了图层,传单地图也会显示灰色区域
- javascript - 如何从 chrome 扩展中流式传输音频
- java - Spring JdbcTemplate 选择具有多行的单列
- r - R - glm() 公式排除有条件的变量
- go - 如何等待 go-routines 完成?
- flutter - 在登录页面上添加循环进度指示器
- node.js - “Runtime.HandlerNotFound:sendEmail.handler 未定义或未导出”我收到此错误。谁能告诉我如何解决它
- javascript - firebase where() 不返回该文档数据?