如何将指定结构化TXT转换为目标格式JSON?split方法后续步骤存疑
把结构化TXT转换为指定JSON格式的解决方案
问题描述
你有如下结构化TXT数据:
WarehouseId WarehouseName SKU NUMBER SKU Name rackSection gatewayID tagAddress lightActive caseCount 50 Lakewood 45234 Mountain Dew (20oz) 4 1 1 True 24 50 Lakewood 65197 Dr Pepper (20oz) 5 1 2 True 24 50 Lakewood 45206 Diet Dr Pepper (20oz) 5 1 3 True 24 50 Lakewood 65209 Diet Pepsi (20oz) 6 1 4 True 24
尝试用data.split(" ")处理但不清楚后续步骤,需要转换成指定格式的JSON文件。
解决方案(Python实现)
用Python内置的json模块即可完成转换,步骤如下:
- 读取TXT内容并过滤无效行
- 拆分表头与数据行,建立字段映射
- 逐行处理数据,转换为对应格式的字典
- 将字典列表写入JSON文件
完整代码示例:
import json # 读取TXT文件(替换为你的文件路径) with open('warehouse_data.txt', 'r') as f: # 过滤空行并去除每行首尾空白 lines = [line.strip() for line in f if line.strip()] # 提取表头,按制表符分割(若为空格分隔则替换为split()) headers = [h.strip() for h in lines[0].split('\t') if h.strip()] # 生成目标字典列表 result = [] for line in lines[1:]: values = [v.strip() for v in line.split('\t') if v.strip()] item = {} for header, val in zip(headers, values): # 数字类型字段转int,其余保留原格式 if header not in ['WarehouseName', 'SKU Name', 'lightActive']: item[header] = int(val) else: item[header] = val result.append(item) # 写入JSON文件 with open('warehouse_data.json', 'w') as f: json.dump(result, f, indent=4)
代码说明
- 读取文件时自动过滤空行,避免无效数据干扰
- 拆分数据时用
split('\t')适配制表符分隔的TXT,若你的文件是多空格分隔,直接换成split()即可(默认按任意空白字符分割) - 针对数字字段做类型转换,确保JSON中数字为数值类型而非字符串
indent=4参数让生成的JSON格式对齐,和你期望的输出完全一致
运行代码后,会生成warehouse_data.json文件,格式完全符合要求。
内容的提问来源于stack exchange,提问作者Mahmood
相关产品推荐
相关产品推荐

