Python3中如何将字典内的JSON字符串值转换为列表?
问题描述
现有Python3环境下的字典d1,其中'result'对应的值是JSON格式的字符串,而非预期的列表结构,示例如下:
d1 = { 'result': '[{"pod_name": "kafka-9", "resolution_ms": 60000, "value": 420.85}, {"pod_name": "kafka-3", "resolution_ms": 60000, "value": 418.0}]' }
需要将其转换为'result'值为列表的字典,目标结构如下:
res = { 'result': [{"pod_name": "kafka-9", "resolution_ms": 60000, "value": 420.85}, {"pod_name": "kafka-3", "resolution_ms": 60000, "value": 418.0}] }
实现方法
使用Python标准库中的json模块,调用json.loads()方法将JSON格式的字符串解析为Python列表,再替换原字典中的'result'值即可。
基础实现代码
import json d1 = { 'result': '[{"pod_name": "kafka-9", "resolution_ms": 60000, "value": 420.85}, {"pod_name": "kafka-3", "resolution_ms": 60000, "value": 418.0}]' } # 解析JSON字符串为列表并替换原字段 d1['result'] = json.loads(d1['result']) # 此时d1已变为目标结构 print(d1)
带异常处理的实现
如果原JSON字符串可能存在格式错误,可添加异常处理逻辑避免程序崩溃:
import json d1 = { 'result': '[{"pod_name": "kafka-9", "resolution_ms": 60000, "value": 420.85}, {"pod_name": "kafka-3", "resolution_ms": 60000, "value": 418.0}]' } try: d1['result'] = json.loads(d1['result']) except json.JSONDecodeError as e: print(f"JSON解析失败: {e}") # 可设置默认值或其他错误处理逻辑 d1['result'] = []
内容的提问来源于stack exchange,提问作者James Xu
相关产品推荐
相关产品推荐

