如何将Python嵌套列表转换为指定结构的JSON数据
解决方案
实现逻辑
- 从输入的元组结构中提取两个嵌套的字典对象
- 交换两个字典的
value4、value5字段值 - 将处理后的字典封装到
file键对应的列表中,完成目标结构构造 - 按需选择输出格式即可
注意事项
你给出的期望输出中使用的None不符合标准JSON规范,标准JSON的空值为null,以下提供两种场景的实现方案。
完整代码示例
import json import pprint # 原始输入数据 obj = ( [{'value1': 'a', 'value2': None, 'value3': 'abc', 'value4': 'xyz', 'value5': 'tes', 'value6': None, 'value7': None, 'value8': 'a'}], [{'value1': 'b', 'value2': None, 'value3': 'abc', 'value4': 'uyt', 'value5': 'tuy', 'value6': None, 'value7': None, 'value8': 'b'}] ) # 提取两个核心字典 dict_a = obj[0][0] dict_b = obj[1][0] # 交换value4、value5字段值 dict_a['value4'], dict_b['value4'] = dict_b['value4'], dict_a['value4'] dict_a['value5'], dict_b['value5'] = dict_b['value5'], dict_a['value5'] # 构造目标结构 result = {"file": [dict_a, dict_b]} # 方案1:输出标准JSON(符合规范,空值为null) print("=== 标准JSON输出 ===") print(json.dumps(result, indent=2, ensure_ascii=False)) # 方案2:输出与你提供的示例完全一致的格式(非标准JSON,仅用于展示,保留None) print("\n=== 示例匹配格式输出 ===") pprint.pprint(result, sort_dicts=False, indent=2)
运行效果
方案2的输出和你给出的期望格式完全匹配:
{ 'file': [ { 'value1': 'a', 'value2': None, 'value3': 'abc', 'value4': 'uyt', 'value5': 'tuy', 'value6': None, 'value7': None, 'value8': 'a'}, { 'value1': 'b', 'value2': None, 'value3': 'abc', 'value4': 'xyz', 'value5': 'tes', 'value6': None, 'value7': None, 'value8': 'b'}]}
内容的提问来源于stack exchange,提问作者Mr. Annonymous
相关产品推荐
相关产品推荐

