指定json_normalize_1元参数时出错

问题描述 投票:0回答:1

我有下一个 API JSON 响应: enter image description here

我需要获取 VALUE_TYPE(电子邮件 -> VALUE_TYPE)

我的代码是这样的

 payload1 = {             "FILTER": {">COMPANY_ID": 0},             # "SELECT": [ "ID", "NAME", "LAST_NAME", "TYPE_ID", "SOURCE_ID", "COMPANY_ID","DATE_CREATE","DATE_MODIFY","EMAIL"],              "SELECT": [ "ID", "NAME", "LAST_NAME", "TYPE_ID", "SOURCE_ID", "COMPANY_ID","DATE_CREATE","DATE_MODIFY","EMAIL"],             "start": 50*p}         response = requests.post(url, json=payload1)         data = response.json()         res = pd.json_normalize(response.json(), record_path=["result"],                                 meta = [['EMAIL','VALUE_TYPE']],errors="ignore")  print(res)

返回我 Nan 值 enter image description here

你能帮忙吗,我的代码有什么问题吗?

对于每一行,我需要“Value_type”参数的值(“WORK”)

python-3.x meta json-normalize
1个回答
0
投票

出现 NaN 值是因为 EMAIL 嵌套在每个结果对象中,而 json_normalize 无法直接访问 meta 中的嵌套数据。您需要先规范嵌套的 EMAIL 数据,然后才能访问 VALUE_TYPE。

res = pd.json_normalize(data['结果'], 'EMAIL', ['ID', ['EMAIL', 'VALUE_TYPE']], 错误='忽略')

这会将 EMAIL 对象展平为各自的行,并将每封电子邮件与父对象中的 ID 和 VALUE_TYPE 配对。

© www.soinside.com 2019 - 2024. All rights reserved.