如何使用Python修改JSON文件的键并重新格式化输出?
没问题,这事儿其实挺简单的,咱们一步步来把JSON结构转成你想要的样子:
解决方法
核心思路就是把原JSON里每个对象的detail数组元素,按顺序映射到新的键名上,同时做一些格式和类型的小调整,最后输出新的JSON。
完整代码实现
import json # 读取原始JSON文件 with open('your_input_file.json', 'r', encoding='utf-8') as input_file: raw_data = json.load(input_file) transformed_list = [] # 遍历每一条数据进行转换 for entry in raw_data: detail_fields = entry['detail'] # 映射字段,同时处理格式问题 transformed_entry = { "name": detail_fields[0].strip(), # 去除名字首尾的空格 "address": detail_fields[1].strip().replace(' ,', ','), # 修正地址里的逗号格式 "gender": "Male" if detail_fields[2].strip() == "M" else "Female", "degree": detail_fields[3].strip(), "roll_no": int(detail_fields[4].strip()) # 把字符串学号转成整数 } transformed_list.append(transformed_entry) # 将转换后的数据写入新JSON文件 with open('your_output_file.json', 'w', encoding='utf-8') as output_file: json.dump(transformed_list, output_file, indent=2, ensure_ascii=False)
代码细节说明
- 读取与写入:用Python内置的
json模块处理文件读写,encoding='utf-8'确保支持特殊字符,indent=2让输出的JSON格式更易读。 - 字段处理:
- 用
strip()去除每个字段首尾的多余空格,比如原数据里名字末尾的空格、地址开头的空格。 - 地址里的
replace(' ,', ',')是为了把"Biratnagar , Morang,"这类格式修正成更规范的"Biratnagar,Morang"。 - 性别字段根据原数据的"M"映射成"Male",如果以后有"F"的情况,代码也能自动转成"Female"。
- 学号
roll_no转成整数类型,比字符串类型更符合数据语义。
- 用
你只需要把代码里的your_input_file.json换成你实际的输入文件名,your_output_file.json换成你想要的输出文件名,运行代码就能得到你期望的JSON格式啦。
内容的提问来源于stack exchange,提问作者dsnewguy
相关产品推荐
相关产品推荐

