Python实现JSON结构转换:将name值转为键intValue值转为对应值
转换方案说明
- 不需要额外安装第三方工具,Python原生能力就能直接完成这个转换,不存在必须写冗余“暴力遍历”代码的问题。
- 该操作本质是从结构化键值对列表构造字典,属于Python字典生成的标准场景,没有专门为这个单一逻辑设计的独立“开箱即用工具”——原生语法本身就是最开箱即用的方案。
最符合Pythonic规范的实现
字典推导式是Python为这类键值映射场景专门设计的原生语法,是社区公认的这类转换场景的标准写法,代码简洁、可读性强、执行效率高(遍历逻辑在解释器底层C层实现,比纯Python层手写显式循环更快):
import json # 原始JSON字符串,替换成你的实际数据 raw_json_str = """ [ {"name":"field1","intValue":"1"}, {"name":"field2","intValue":"2"}, {"name":"fieldN","intValue":"N"} ] """ # 加载原始数据为Python列表 raw_data = json.loads(raw_json_str) # 一行完成格式转换 converted_data = {item["name"]: item["intValue"] for item in raw_data} # 若需要输出为JSON格式字符串,执行下面这行即可 converted_json_str = json.dumps(converted_data, indent=2, ensure_ascii=False)
不推荐的写法说明
你可能见过用dict()搭配map+lambda的写法:
# 可读性差,不符合现代Python编码规范,不推荐 converted_data = dict(map(lambda x: (x["name"], x["intValue"]), raw_data))
这种写法的执行效率和字典推导式接近,但可读性远低于字典推导式,不属于社区推荐的Pythonic写法。
注意事项
如果原始数组中存在name字段重复的条目,转换后后面的条目值会覆盖前面同键的值,这是Python字典的固有特性。如果你的业务场景需要保留重复键的所有值,可以在推导式基础上扩展对应处理逻辑。
内容的提问来源于stack exchange,提问作者CLAbeel
相关产品推荐
相关产品推荐

