【问题标题】:Convert multiple JSON files to a single .CSV file将多个 JSON 文件转换为单个 .CSV 文件
【发布时间】:2018-11-14 06:23:14
【问题描述】:

我正在尝试将 2000 个相同维度的 JSON 文件转换为 .csv 并将其合并为单个 .csv 文件。最好看的地方是什么?请协助。

【问题讨论】:

  • 请给出源 Json 文件的示例以及您希望在 csv 文件中得到什么。
  • 您是想用一种特定的编程语言自动完成这项工作,还是只是想完成一项临时工作?
  • 感谢您的回复。这是 json 文件中的一个数据点的样子。 {"type":2,"rcvTime":25200.0,"pos":[3587.62730864618,5866.100111525839,1.895],"noise":[0.0,0.0,0.0],"spd":[-0.029183319723886247,30.07902315,2100]. "spd_noise":[0.0,0.0,0.0]} 我想在 csv 文件表中生成带有 "type"、"revTime"、"pos"、"noise" 等属性的 .csv 文件。
  • 有一个很好的方法使用jq已经在stackoverflow.com/a/32965227/310441回答了

标签: json csv merge


【解决方案1】:

我有一堆 .json 文件有同样的问题。 我的解决方案是使用 bash 脚本循环所有文件,并在每个文件上使用 jq 转换为单独的 csv 文件。类似的东西

i=1
for eachFile in /path/to/json/*.json; do
    cat json-$i.json | jq -r '.[] | {column1: .path.to.data, column2: .path.to.data} | [.[] | tostring] | @csv' > extract-$i.csv
    echo "converted $i of many json files..."
    ((i=i+1))
done

然后,您可以将 cat>> 所有这些都放在与单个 .csv 文件类似的循环中。类似的东西

i=1
for eachFile in /path/to/csv/*.csv; do
    cat extract-$i.csv >> concatenate.csv
    ((i=i+1))
done

如果你足够狡猾,你可以将它们组合成一个脚本......编辑:事实上,这只是在第一个脚本中添加>,并使用单个文件名,所以@987654327 @

【讨论】:

    【解决方案2】:

    Withdata 提供了一个很棒的程序,不幸的是,它要花一些钱,但如果您只需要快速修复,可以免费试用 30 天。它被称为 DataFileConverter,他们的网站上有关于如何将 json 文件专门更改为 .csv 的指南。如果您正在寻找免费程序,请尝试此存储库https://github.com/evidens/json2csv。它是用python编写的,但仍然可以与说明一起使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-05
      • 2021-05-15
      • 1970-01-01
      • 1970-01-01
      • 2020-06-30
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多