如何修改Python脚本将文本文件转为数组形式的JSON输出
如何将竖线分隔文本转换为数组形式的JSON?
核心思路是用列表存储所有条目字典,最后将整个序列转为JSON数组。以下是完整实现代码:
import json # 读取目标文本文件 with open('input.txt', 'r', encoding='utf-8') as file: # 按行读取并去除换行符 lines = file.read().splitlines() # 初始化存储结果的数组(对应JSON的数组结构) json_array = [] # 定义每个条目的字段名 field_names = ['name', 'date', 'time', 'info'] for line in lines: # 按竖线分割每行内容 parts = line.split('|') # 处理字段缺失的情况(比如blue行最后无info,补空字符串) parts += [''] * (len(field_names) - len(parts)) # 将字段与值配对成字典 entry = dict(zip(field_names, parts)) # 将字典追加到数组中 json_array.append(entry) # 转换为格式化的JSON字符串(indent=4用于美化输出,可选) final_json = json.dumps(json_array, indent=4) # 打印结果或写入文件 print(final_json) # 写入文件的话: # with open('output.json', 'w', encoding='utf-8') as out_file: # out_file.write(final_json)
关键修改点说明
- 替换对象为列表:如果你的原脚本是用单个字典(对象)嵌套条目,现在改成用空列表
json_array作为容器,每个条目字典通过append()加入列表。 - 处理空值:用
parts += [''] * (...)确保分割后的字段数和定义的field_names长度一致,避免因某行缺值导致字典配对失败。 - 序列转JSON:直接将整个列表传入
json.dumps(),会自动生成数组形式的JSON结构。
运行后输出的JSON格式将和你给出的示例完全一致。
内容的提问来源于stack exchange,提问作者tryingToDevelopMyself
相关产品推荐
相关产品推荐

