pandas 如何将 Dataframe 转换为嵌套json

ioekq8ef  于 2023-01-19  发布在  其他
关注(0)|答案(2)|浏览(181)

我有这个数据框:

df = pd.DataFrame({'Survey': "001_220816080015", 'BCD': "001_220816080015.bcd", 'Sections': "4700A1/305, 4700A1/312"})

所有 Dataframe 字段都是ASCII字符串,是SQL查询(pd.read_sql_query)的输出,因此上面创建 Dataframe 的行可能不太正确。
我希望最终的JSON输出格式为

[{
  "Survey": "001_220816080015",
  "BCD": "001_220816080015.bcd",
  "Sections": [
    "4700A1/305", 
    "4700A1/312"
}]

我意识到这可能不是"正常"的JSON,但这是一个程序所期望的格式,我无法控制。
目前为止我所达到的最接近的结果是

[{
      "Survey": "001_220816080015",
      "BCD": "001_220816080015.bcd",
      "Sections": "4700A1/305, 4700A1/312"
    }]

问题可能是 Dataframe 的结构,但如何重新格式化它,以产生的要求是我不清楚。
JSON行是:

df.to_json(orient='records', indent=2)
ovfsdjhp

ovfsdjhp1#

DataFrame在这里帮不上什么忙,因为它只是返回您给它的输入参数。
您只需将所需的特定列拆分到一个数组中:

input_data = {'Survey': "001_220816080015", 'BCD': "001_220816080015.bcd", 'Sections': "4700A1/305, 4700A1/312"}

input_data['Sections'] = input_data['Sections'].split(', ')

nested_json = [input_data]
olqngx59

olqngx592#

这难道不是将Sections解析为列表所需要做的唯一事情吗?

import pandas as pd

df= pd.DataFrame({'Survey': "001_220816080015", 'BCD': "001_220816080015.bcd", 'Sections': "4700A1/305, 4700A1/312"}, index=[0])

df['Sections'] = df['Sections'].str.split(', ')
print(df.to_json(orient='records', indent=2))

[
  {
    "Survey":"001_220816080015",
    "BCD":"001_220816080015.bcd",
    "Sections":[
      "4700A1\/305",
      "4700A1\/312"
    ]
  }
]

相关问题