无法从网站的.json文件导出特定数据

时间:2019-06-17 03:59:42

标签: 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','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

任何帮助将不胜感激。

2 个答案:

答案 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")