我正在使用以下内容来分析网站中的数据:
import requests
import pandas as pd
resp = requests.get("https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=1000000&page=1").json()
df = pd.DataFrame(resp['posts'], columns=['episodeNumber','slug','image','excerpt','audioSource'])
df.to_csv("output9.csv", encoding='utf-8', index='false')
data = pd.read_csv("output9.csv")
如您所见,我不得不拉出整个“摘录”列,该列将拉所有三个而不是一个。我会怎么做只是拉说“短”的?标题称为“列”而不是“标题”?另外,“标题”似乎没有任何标题-我也将如何拉这个标题?
如果有帮助,可以快速浏览.json: https://www.dropbox.com/s/v9l81ber6i4nbgw/11111111.jpg?dl=0
任何帮助将不胜感激。
答案 0 :(得分:2)
我能想到的解决方法是规范化resp ['posts'] json而不提及列。下面是生成上述数据框的代码:
import requests
import pandas as pd
from pandas.io.json import json_normalize
resp = requests.get("https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=1000000&page=1").json()
# print(resp['posts'][0])
df = pd.DataFrame(json_normalize(resp['posts']))
df.to_csv("output2_9.csv", encoding='utf-8', index='false')
现在,一旦有了此数据框,您就可以过滤想要的任何列,使其具有json和列名称的所有字段,如下所示: 音频源内容日期情节编号摘录。完整摘录。长摘录。短id图像。完整图像。大图像。中图像。缩略图音乐版权归next next.slug next.title永久链接prev.slug prev.title slug标题
标题标题也出现在此数据框中
答案 1 :(得分:1)
我采用了excerpt
系列,称为apply
函数,并采用了从apply
创建的'short'系列。您可能需要处理多余的双引号,请考虑以下代码:
import requests
import pandas as pd
resp = requests.get("https://thisiscriminal.com/wp-json/criminal/v1/episodes?posts=1000000&page=1").json()
df = pd.DataFrame(resp['posts'], columns=['episodeNumber','slug','image','excerpt','audioSource'])
df['excerpt'] = df['excerpt'].apply(pd.Series)['short']#.replace({'"': '\'','""': '\'','"""': '\'' }, regex=True)
df.to_csv("output9.csv", encoding='utf-8', index='false')
data = pd.read_csv("output9.csv")