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

如何用Python3根据不同属性组文本生成指定格式JSON文件

Python3 实现文本文件转指定格式JSON

实现思路

  1. 读取输入文本文件,按空行分割为三个数据组(水果、动物、汽车品牌)
  2. 为每个组的元素添加带编号的前缀(如fruit_1、animal_2)
  3. 将所有键值对整合为字典,最终写入格式化的JSON文件

代码实现

import json

# 读取输入文本文件(假设文件名为input.txt)
with open('input.txt', 'r', encoding='utf-8') as input_file:
    raw_content = input_file.read()

# 拆分内容为三个数据组,过滤每组内的空行
data_groups = []
for block in raw_content.split('\n\n'):
    cleaned_items = [line.strip() for line in block.splitlines() if line.strip()]
    data_groups.append(cleaned_items)

# 定义每个数据组对应的前缀
prefixes = ['fruit', 'animal', 'brand']

# 构建目标JSON字典
final_dict = {}
for prefix, items in zip(prefixes, data_groups):
    # 从1开始为元素编号
    for index, item in enumerate(items, start=1):
        key_name = f"{prefix}_{index}"
        final_dict[key_name] = item

# 写入JSON文件(生成格式与示例一致)
with open('output.json', 'w', encoding='utf-8') as output_file:
    # 生成带缩进的格式化JSON
    json.dump(final_dict, output_file, indent=2, ensure_ascii=False)

# 可选:若需保留示例中的末尾逗号(非严格JSON格式),可替换上述写入步骤为以下代码
# json_string = json.dumps(final_dict, indent=2, ensure_ascii=False)
# # 在最后一个键值对后添加逗号
# formatted_json = json_string.rstrip('}') + ',\n}'
# with open('output.json', 'w', encoding='utf-8') as output_file:
#     output_file.write(formatted_json)

代码说明

  • 读取文件:使用with语句确保文件资源自动释放,读取全部内容后按空行拆分。
  • 数据清洗:过滤每个数据组内的空行和空白字符,避免无效数据。
  • 构建字典:通过zip将前缀与数据组一一对应,使用enumerate从1开始生成编号,拼接成目标键名。
  • 写入JSON:json.dump的indent=2参数保证输出格式和示例一致,ensure_ascii=False兼容非ASCII字符。
  • 末尾逗号处理:示例JSON包含末尾逗号(非严格JSON规范),若需完全匹配示例,可使用可选代码块手动添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 18:58:06