将带有整数键的嵌套 json 转换为 pandas 数据框

convert nested json with integers keys to pandas dataframe

我大家。我正在尝试将嵌套的 Json 转换为 pandas 数据框。这是 JSON 的样子:

{0: {'Geographical information': 'Sweden',
  'Geography': 'mentioned',
  'Time': 'not_relevant',
  'annotation': 'quantitative_precise',
  'claim': ' “"',
  'label': 'Mostly true',
  'text': 'Swedish.'},
 1: {'Geographical information': 'Italy',
  'Geography': 'mentioned',
  'Time': 'unclear',
  'annotation': 'quantitative_precise',
  'claim': '',
  'label': 'Mostly false',
  'text': "."},
 2: {'Geography': 'not_relevant',
  'Time': 'unclear',
  'annotation': 'quantitative_vague',
  'claim': ' "”',
  'label': 'False',
  'text': '.'},
 3: {'Geographical information': 'France',
  'Geography': 'mentioned',
  'Time': 'not_relevant',
  'annotation': 'qualitative',
  'claim': ' ',
  'label': 'Mostly false',
  'text': '.'},

理想情况下,生成的 df 应将内部字典键(例如“地理信息”)作为列,将外部键(0、1、2 等)作为行。我正在使用 pd.json_normalize() 函数。但是,后者将外键(因为我认为它们都是不同的整数)误解为列而不是行。

尝试:

data = {0: {'Geographical information': 'Sweden',
  'Geography': 'mentioned',
  'Time': 'not_relevant',
  'annotation': 'quantitative_precise',
  'claim': ' “"',
  'label': 'Mostly true',
  'text': 'Swedish.'},
 1: {'Geographical information': 'Italy',
  'Geography': 'mentioned',
  'Time': 'unclear',
  'annotation': 'quantitative_precise',
  'claim': '',
  'label': 'Mostly false',
  'text': "."},
 2: {'Geography': 'not_relevant',
  'Time': 'unclear',
  'annotation': 'quantitative_vague',
  'claim': ' "”',
  'label': 'False',
  'text': '.'},
 3: {'Geographical information': 'France',
  'Geography': 'mentioned',
  'Time': 'not_relevant',
  'annotation': 'qualitative',
  'claim': ' ',
  'label': 'Mostly false',
  'text': '.'}}
pd.DataFrame.from_dict(data, orient='index')

根据pandas官方文档https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.from_dict.html