【发布时间】:2020-03-07 01:22:18
【问题描述】:
我是一名新手程序员,我正在尝试使用 Pandas 将 excel 文件转换为嵌套的 JSON。
我正在发布我的代码和预期的输出,到目前为止我无法实现。问题是我转换为嵌套信息的 excel 列实际上应该属于“地址”名称,我不知道该怎么做。将不胜感激任何建议。
excel文件是这样的:
import pandas as pd
import json
df = pd.read_excel("...", encoding = "utf-8-sig")
df.fillna('', inplace = True)
def get_nested_entry(key, grp):
entry = {}
entry['Forename'] = key[0]
entry['Middle Name'] = key[1]
entry['Surname'] = key[2]
for field in ['Address - Country']:
entry[field] = list(grp[field].unique())
return entry
entries = []
for key, grp in df.groupby(['Forename', 'Middle Name', 'Surname']):
entry = get_nested_entry(key, grp)
entries.append(entry)
print(entries)
with open("excel_to_json_output.json", "w", encoding = "utf-8-sig") as f:
json.dump(entries, f, indent = 4)
这是预期的结果
[
{
"firstName": "Angela",
"lastName": "L.",
"middleName": "Johnson",
"addresses": [
{
"postcode": "32807",
"city": "Orlando",
"state": "FL",
"country": "United States of America"
}
],
我得到的是这个
[
{
"Forename": "Angela",
"Middle Name": "L.",
"Surname": "Johnson",
"Address - Country": [
"United States of America"
]
},
【问题讨论】:
-
我相信 Excel 和代码之间的列名不同(“名字”和“姓氏”与“名字”和“姓氏”)。我不认为这不是问题。我会尽快运行你的代码。
标签: python json excel pandas nested