如何从网站返回的嵌套字典数据生成指定列的Pandas DataFrame?
解决方案:将嵌套JSON转换为Pandas DataFrame
你的JSON数据中,stats字段正是包含date和count数据的字典列表,直接基于这个列表构造DataFrame即可快速实现目标,也可以用正确的方式调用pd.json_normalize()完成转换。
方法1:直接构造DataFrame(最简洁)
直接提取root['stats']传入pd.DataFrame(),再按需重命名列即可:
import requests import pandas as pd search_url = 'https://data.europa.eu/api/hub/statistics/data/num-datasets' response = requests.get(search_url) root = response.json() # 从stats列表生成DataFrame df = pd.DataFrame(root['stats']) # 重命名列以匹配需求(date→Date,count→Count) df = df.rename(columns={'date': 'Date', 'count': 'Count'}) print(df)
方法2:正确使用pd.json_normalize()
之前使用pd.json_normalize()无效,是因为直接传入了顶层字典root,导致stats被当作单列处理。正确做法是传入root['stats']:
import requests import pandas as pd search_url = 'https://data.europa.eu/api/hub/statistics/data/num-datasets' response = requests.get(search_url) root = response.json() # 传入stats列表进行标准化 df = pd.json_normalize(root['stats']) # 重命名列 df = df.rename(columns={'date': 'Date', 'count': 'Count'}) print(df)
两种方法最终都会生成包含Date和Count两列的DataFrame,满足你的需求。
内容的提问来源于stack exchange,提问作者natguy8
相关产品推荐
相关产品推荐

