【问题标题】:Convert json data with arrays into CSV将带有数组的 json 数据转换为 CSV
【发布时间】:2019-12-28 21:23:32
【问题描述】:

我正在尝试了解从一组 json 解析和创建 CSV 文件的最佳实践,这可能会因每个 API 调用而改变。这与 Facebook 广告集数据有关。

这是输出数据的示例:

{
                "lifetime_imps": 0,
                "optimization_goal": "REACH",
                "optimization_sub_event": "NONE",
                "pacing_type": [
                    "standard"
                ],
                "promoted_object": {
                    "application_id": "123456789",
                    "custom_event_type": "PURCHASE",
                    "object_store_url": "https://itunes.apple.com/app/god"
                },
                "recurring_budget_semantics": true,
                "review_feedback": "[]",
                "custom_audiences": [
                {
                    "id": "123455678919",
                    "name": "GODS_COUNTRY_REALLY_GOOD_SONG"
                }
            ]
}

担忧: 当我们解析这个结构时,例如 pacing_type 数组可能有超过 1 个元素。甚至 custom_audiences 也有许多对象,这些对象可能会因产品而异。

我们的目标是解析此结构并创建一个 CSV 文件,该文件可在基于分析或报告软件的下游使用。

可能的方法 - 收集 JSON 结构的所有固定元素,并为每个包含数组值的元素,为数组中的每个元素创建一个新行?

【问题讨论】:

  • 你能展示你期望的 CSV 的样子吗?你见过 Pandas 规范化 JSON 输出吗?
  • 另外,如果有多个数组项而不是没有,您是否期望列数相同?
  • CSV 不是表示嵌套数据的好格式,尤其是当嵌套数据以不可预知的方式变化时。
  • @martineau 你有什么推荐的?
  • 好吧。 (显然)JSON 支持它,以及 YAML 和 XML。如果您真的更喜欢 CSV,也许从单一来源创建多个“链接”文件是可行的。进行链接的一种方法是将嵌套数据的文件名放在主 CSV 文件或“根”CSV 文件中。

标签: python json python-3.x csv


【解决方案1】:

找到最长的嵌套最多的待成行元素,并使用该数量的单元格将所有较短的单元格填充到:

1,short,,,,,
2,longest,a,b,c,d,e
3,short,q,x,z,,

【讨论】:

    猜你喜欢
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2022-01-17
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 2019-10-11
    相关资源
    最近更新 更多