【问题标题】:Using the json_normalize function when a key is missing缺少键时使用 json_normalize 函数
【发布时间】:2021-06-11 10:44:58
【问题描述】:

我遇到了json_normalize 函数的问题。指定项目可能缺少的键时,会引发键错误。如您所见,listPeople 并不总是存在于文件中。

df = {'Links':[{'id' : 1,'Gender' : 'X'},
         {'id' : 2,'Gender' : 'Y','listPeople' : [{'Person':'John', 'Age' : 42}] }
         ]
        }
test = json_normalize(df, record_path= "listPeople", errors = "ignore")
print(test)

根据documentation,使用errors = "ignore" 应该可以解决问题,但这似乎不起作用?

预期输出:

Person   Age
  NULL  NULL
  John    42

【问题讨论】:

    标签: python pandas dataframe json-normalize


    【解决方案1】:

    errors = "ignore" 适用于缺少 dict 键,但您缺少一个可能包含多个 dicts 的列表,并且您希望将其作为 record_path 传递。您可以用空值填充缺少的 listPeople

    [i.update({'listPeople':[{'Person':None,'Age':None}]}) for i in df['Links'] if 'listPeople' not in i.keys()]
    
    test = pd.json_normalize(df['Links'], record_path=['listPeople'], meta=['id','Gender'], errors = "ignore")
    

    结果:

    Person Age id Gender
    0 None NaN 1 X
    1 John 42 2 Y

    【讨论】:

      猜你喜欢
      • 2019-06-21
      • 2014-04-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      相关资源
      最近更新 更多