【发布时间】:2022-08-17 19:12:50
【问题描述】:
我有一个复杂的嵌套 json 文件。我需要一个通用代码来展平这个嵌套文件并使用 pyspark 或 pandas 将结果存储在数据框中。 它是否可以实现,它们是否适用于任何复杂的嵌套 json 文件的通用代码?
标签: python pyspark azure-databricks
我有一个复杂的嵌套 json 文件。我需要一个通用代码来展平这个嵌套文件并使用 pyspark 或 pandas 将结果存储在数据框中。 它是否可以实现,它们是否适用于任何复杂的嵌套 json 文件的通用代码?
标签: python pyspark azure-databricks
我在数据变量中添加了 json。要导入 json 文件,您可以使用
df = pd.read_json('data.json')
我使用json_normalize() 来展平嵌套的 json 数据。
深度嵌套的 JSON 结构,可以通过将元参数传递给 json_normalize 函数来转换数据帧,如下所示。
import pandas as pd
data = [
{
"company": "Google",
"tagline": "Hello World",
"management": {"CEO": "ABC"},
"department": [
{"name": "Gmail", "revenue (bn)": 123},
{"name": "GCP", "revenue (bn)": 400},
{"name": "Google drive", "revenue (bn)": 600},
],
},
{
"company": "Microsoft",
"tagline": "This is text",
"management": {"CEO": "XYZ"},
"department": [
{"name": "Onedrive", "revenue (bn)": 13},
{"name": "Azure", "revenue (bn)": 300},
{"name": "Microsoft 365", "revenue (bn)": 300},
],
},
]
df = pd.json_normalize(
data, "department", ["company", "tagline", ["management", "CEO"]]
)
df
输出
通过 jssuriyakumar 引用此 article
您也可以参考 calestini 的类似 issue
【讨论】: