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

如何在JavaScript中读取文件并转换为JSON对象数组?

简便实现空格分隔文本转JSON对象数组

问题描述

我有如下格式的文件:

key1 key2
data1 data2
data3 data4
...

想要读取该文件并转换为JSON对象数组,期望输出:

[{"key1": "data1", "key2": "data2"}, {"key1": "data3", "key2": "data4"}, ...]

方法一:Python 脚本(灵活通用)

几行代码就能完成转换,适合需要自定义处理逻辑的场景:

import json

# 读取文件并过滤空行
with open('input.txt', 'r', encoding='utf-8') as f:
    lines = [line.strip() for line in f if line.strip()]

# 提取表头作为键
keys = lines[0].split()

# 构造JSON数组
json_array = []
for line in lines[1:]:
    values = line.split()
    # 可选:确保键值数量匹配,避免异常
    if len(values) == len(keys):
        json_array.append(dict(zip(keys, values)))

# 打印结果
print(json.dumps(json_array, indent=2, ensure_ascii=False))
# 若要写入文件,取消下方注释
# with open('output.json', 'w', encoding='utf-8') as f:
#     json.dump(json_array, f, indent=2, ensure_ascii=False)

方法二:命令行工具 jq(无需写代码)

熟悉命令行的话,用jq可以快速完成一次性转换:

# 假设输入文件为data.txt
jq -R 'split(" ") | . as $line | if NR==1 then $keys=$line else ($keys | zip($line) | from_entries) end' data.txt | jq -s
  • 第一部分jq -R 'split(" ") | ...':按空格拆分每行,第一行保存为键数组,后续行生成对应键值对的对象
  • 最后jq -s:将所有对象合并为一个数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 22:37:00