【问题标题】:Split a JSON file into separate files with jq and Python [closed]使用 jq 和 Python 将 JSON 文件拆分为单独的文件 [关闭]
【发布时间】:2021-09-17 22:54:59
【问题描述】:

我有一个包含 100 个对象的 JSON 文件,我想将其转换为单独的 JSON 文件,每个对象一个。

我已经在 python 中编写了一个脚本来执行此操作,但是如果我尝试在 while 循环中增加值,它会在我的终端中无休止地运行。

它不会崩溃,只是永远不会结束。

import os

i = 0
while i <= 100:
    os.system(f"cat _metadata.json | jq '.[{i}]' > {i}.json")
    ++i

【问题讨论】:

  • 这根本无法运行。 while i &lt;= : 是语法错误,++i 也应该是语法错误。
  • 你真的不需要 jqos 模块。从open('_metadata.json') 开始,然后使用 Python 读取它
  • 顺便说一句,cat 没用。
  • @mkrieger1 发布问题时拼写错误,程序运行永远不会结束
  • ++i 仍然不正确。你想输入i += 1吗?

标签: python json jq


【解决方案1】:

基本上,管道和输出重定向不应该使用单个 os.system 命令来完成...Python 有自己的管道系统和 subprocess 模块,但是,你并不需要它。

Python 能够自行完成这项工作

这假设您的文件只包含一个 JSON 数组

import json

with open('_metadata.json') as f:
  data = json.load(f)
  for i, x in enumerate(data):
    with open(str(i) + '.json', 'w') as f_out:
      json.dump(x, f_out)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-07-03
    • 2022-11-24
    • 1970-01-01
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 2016-02-07
    • 2015-05-25
    相关资源
    最近更新 更多