【问题标题】:issue in merging json files in python在python中合并json文件的问题
【发布时间】:2019-03-21 16:38:06
【问题描述】:

我试图合并多个具有相同标题的 json 文件。 我使用了其他帖子中讨论的代码,并对目标文件夹进行了一些调整,如下所示:

  import glob
  result= []
  filepath = 'D:/Football matters/Sttratagem data access/WYScout/trial data/MergeTest'
  all_header_files = glob.glob(filepath+'/*.json')

    for f in all_header_files:
        with open(f, "rb") as infile:
            result.append(json.load(infile))

    with open("merged_file.json", "wb") as outfile:
         json.dump(result, outfile)

当我将它循环合并时,它显示了一些错误,如下所示:

TypeError: a bytes-like object is required, not 'str'

您可以下载示例文件Here

就我而言,我有 100 多个 json 文件要合并为一个。 谁能告诉它如何合并?

问候 泽普。

【问题讨论】:

  • json文件在当前目录吗?
  • 嗨 Vikrant,所有文件都在同一个目录中。谢谢
  • 发布的答案应该有效。
  • 是的。它在读取文件时起作用。我在帖子中更新了合并文件时遇到问题。请给点建议好吗?
  • open()调用中使用rw模式,而不是二进制rbwb

标签: python json pandas merge


【解决方案1】:

问题在于您对 glob 的使用。这是它的用法示例。

import glob
filepath = 'D:/Football matters/Sttratagem data access/WYScout/trialdata/MergeTest'
all_json_files = glob.glob(filepath+'/*.json')

您现在可以像以前一样使用 for 循环 all_json_files

【讨论】:

  • 我更新了。它在 all_header_files 中显示空值。
  • 您能更新一下您在问题中所做的更改吗?
  • 您好阿南德,感谢您的回复,我已经更新了。
  • 嗨,我认为是因为在变量中单独分配了一个字符串。我直接插入目录。它向我显示了包含名称的文件路径
  • @Zephyr 您必须合并文件路径变量。查看更新的答案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-11
  • 2021-10-15
  • 2019-11-13
  • 1970-01-01
  • 2019-03-20
  • 2019-06-06
相关资源
最近更新 更多