我的头撞到墙上了。我正在使用GeoDeepDive应用程序接口,并试图“整理”数据。我的代码:
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 output with top two rows edited manually
CSV的前2行是我想要的输出,下面的两行是我得到的。我需要以某种方式“挖掘”字典。
我正在尝试遍历这些特定的dataframe列,或者只选择url,或者将名称转换为名称列表。无论我尝试什么,我总是收到错误,我在想,甚至可能有更好的方法来做到这一点。有什么想法吗?
发布于 2020-12-14 21:37:34
如果这样的话你能试试吗
...
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")
满足您的需求?
https://stackoverflow.com/questions/65283758
复制