将json直接转换为pandas dataframes字典

llew8vvj  于 2023-06-07  发布在  其他
关注(0)|答案(2)|浏览(110)

我有一些json文件,看起来像一个类似字典列表的字典:

{"People":[{"FirstName":"Max","Surname":"Smith"},{"FirstName":"Jane","Surname":"Smart"}],
"Animals":[{"Breed":"Cat","Name":"WhiteSocks"},{"Breed":"Dog","Name":"Zeus"}]}

我使用以下代码将其转换为pandas Dataframe 的字典:

import pandas as pd
import json

# Read the json file
jsonFile = 'exampleJson.json'
with open(jsonFile) as j:
    data = json.load(j)

# Convert it to a dictionary of dataframes
dfDict = {}
for dfName, dfContents in data.items():
    dfDict[dfName] = pd.DataFrame(dfContents)
    display(dfDict[dfName])

上面的代码正好给了我想要的,这是一个dataframes字典。但是,这似乎相当低效。有没有一种方法可以将json直接读到 Dataframe 字典中,而不是先将其读到json对象中,然后再复制到 Dataframe 字典中?我处理的文件会很大。

9rygscc1

9rygscc11#

可以使用json_normalize()

import json

import pandas as pd

json_file = "exampleJson.json"
with open(json_file) as j:
    data = json.load(j)

df_dict = {d: pd.json_normalize(data=data, record_path=d) for d in data}
print(df_dict)
oaxa6hgo

oaxa6hgo2#

你应该试试这个代码:

import pandas as pd
import json

# Read the json file
jsonFile = 'exampleJson.json'
with open(jsonFile) as j:
    data = pd.json_normalize(json.load(j))

# Convert it to a dictionary of dataframes
 df1=data['People']
 print(df1)
 df2=data['Animals']
 print(df2)

相关问题