【问题标题】:Split JSON File into multiple JSONs according to their ID?根据 ID 将 JSON 文件拆分为多个 JSON?
【发布时间】:2017-09-05 01:28:01
【问题描述】:

我有一个如下所示的 JSON 文件:

{"one":"Some data", "two":"Some data",...}

等等……

我想根据ID的名字将所有ID拆分成单独的文件,例如:

one.json
{"one":"Some data"}
two.json
{"two":"Some data"}

等等。

我收到了来自this 的推荐信。但我的问题略有不同。我可以修改什么来实现单独的文本文件?

【问题讨论】:

  • 变量名与键名相同的意义何在?您只是通过添加大量不必要的名称来弄乱命名空间
  • 除非您有充分的理由这样做,否则请不要使用 python-2.7 python-3.x 进行标记。

标签: python json python-2.7 python-3.x


【解决方案1】:

我不会教你如何进行文件 I/O 并假设你可以自己做。

将原始文件作为dictjson 模块加载后,请执行

>>> org = {"one":"Some data", "two":"Some data"}
>>> dicts = [{k:v} for k,v in org.items()]
>>> dicts
[{'two': 'Some data'}, {'one': 'Some data'}]

如果您愿意,它将为您提供可以转储到文件(或以键命名的单独文件)的字典列表。

【讨论】:

    【解决方案2】:

    加载 JSON 文件后,您可以将其视为 python 中的字典,然后像在普通 python 字典中一样通过循环将内容保存在文件中。 这是一个与您想要实现的目标相关的示例

    Data = {"one":"Some data", "two":"Some data"}
    for item in Data:
        name = item + '.json'
        file = open(name, 'w')
        file.write('{"%s":"%s"}' % (item, Data[item]))
        file.close()
    

    【讨论】:

      【解决方案3】:

      将json数据放入变量后,做

      a = {"one":"Some data", "two":"Some data"}
      for k,v in a.items():
          with open(k+".json","w") as f:
              f.write('{"%s" : "%s"}' %(k,v))
      

      输出是:

      one.json => {"one":"Some data"}
      

      two.json => {"two":"Some data"}
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多