Javascript 无法从网站的.json文件导出特定数据
我使用以下方法解析网站中的数据:Javascript 无法从网站的.json文件导出特定数据,javascript,python,json,pandas,Javascript,Python,Json,Pandas,我使用以下方法解析网站中的数据: 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','a
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:
任何帮助都将不胜感激。我能想到的解决办法是规范化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字段和列名如下:
audioSource内容日期插曲编号节选。完整节选。长节选。短id图像。完整图像。大图像。中等图像。拇指音乐信用证下一个。slug下一个。title permalink prev prev.slug prev.title slug title slug title
标题标题也出现在这个数据框架中我已经获取了摘录系列,称为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")
太棒了,非常感谢你!您知道如何插入“标题”部分吗?它的列格式与插曲描述或图像的列格式不同?当我使用.json查看器时,不会以相同的方式显示。我不明白,如果您想要标题,可以在诸如so df=pd.DataFrameresp['posts',columns=['title','eposodenumber','slug','image','extract','audioSource'等列中添加标题或者,如果你说的是prev,那么你可以使用我在摘录答案中使用的相同代码