You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改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)

关键修改点说明

  1. 替换对象为列表:如果你的原脚本是用单个字典(对象)嵌套条目,现在改成用空列表json_array作为容器,每个条目字典通过append()加入列表。
  2. 处理空值:用parts += [''] * (...)确保分割后的字段数和定义的field_names长度一致,避免因某行缺值导致字典配对失败。
  3. 序列转JSON:直接将整个列表传入json.dumps(),会自动生成数组形式的JSON结构。

运行后输出的JSON格式将和你给出的示例完全一致。

内容的提问来源于stack exchange,提问作者tryingToDevelopMyself

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 10:45:41