首页 > 解决方案 > 我正在尝试遍历熊猫系列字典(通过 API 获得),我想将它们拆分为数据框中的绝望系列

问题描述

我正用头撞墙。我正在使用 GeoDeepDive API,并尝试“整理”数据。我的代码:

import requests
import pandas as pd

response = requests.get("https://geodeepdive.org/api/articles?pubname_like=Geochronology")

data = response.json()
df = pd.json_normalize(data)
df = df['success.data']
dic = df[0]

df1 = pd.DataFrame.from_dict(dic)
df1.to_csv("output_file.csv")

结果几乎是完美的,但是嵌套的 json 导致了我得到这样的数据的问题:

手动编辑前两行的 CSV 输出

CSV 前两行是我想要的输出,后两行是我得到的。我需要以某种方式“挖掘”字典。

我正在尝试遍历那些特定的数据框列,或者只选择 url,或者将名称转换为名称列表。不过,无论我尝试什么,我都会不断出错,我认为甚至可能有更好的方法来做到这一点。有什么想法吗?

标签: pythonjsonpandasapi

解决方案


你能试试这个吗

...
df1 = pd.DataFrame.from_dict(dic)
df1.link = df1.link.apply(lambda l: l[0]['url'])
df1.author = df1.author.apply(lambda l: ';'.join(d['name'] for d in l))
df1.to_csv("output_file.csv")

适合您的需求?


推荐阅读