从 JSON 中抓取数据

Posted

技术标签:

【中文标题】从 JSON 中抓取数据【英文标题】:Scrape data from JSON 【发布时间】:2020-08-14 19:43:12 【问题描述】:

我正在使用 Python 制作价格统计项目,但在从 API 抓取数据时遇到问题。 API 是https://www.rolimons.com/api/activity

我想从 API 中获取价格,即一个区块的最后 2 个值。

例如,从[1588247532, 0, "1028606", 464, 465] 我只需要 464 和 465。我也想对所有表都这样做。

我该怎么做?这是我到目前为止的代码:

import requests 
import json

r = requests.get('https://www.rolimons.com/api/activity')
content = json.loads(r.content.decode())
for key, value in content.items():
    print(key)   

【问题讨论】:

【参考方案1】:

试一试:

for value in content['activities']:
    print(value[-2:])

它遍历活动并打印每个值的最后两项。

或者您可以在单独的列表中收集价格以供以后使用,如下所示:

prices=[value[-2:] for value in content['activities']]

【讨论】:

【参考方案2】:

当您不确定如何或为什么时,我建议您使用打印语句。见下文,它可能有助于直观地了解正在发生的事情。

import requests
import json

r = requests.get('https://www.rolimons.com/api/activity')
content = json.loads(r.content.decode())
for key, value in content.items():
    print("Key: ", key)
    print("content[key]: ", content[key])

for array in content["activities"]:
    print("array: ", array)
    print("array[len(array)-1]:", array[len(array)-1])
    print("array[len(array)-2]:", array[len(array)-2])

【讨论】:

以上是关于从 JSON 中抓取数据的主要内容,如果未能解决你的问题,请参考以下文章

如何在通过网络抓取创建的 json 文件中组织数据

如何将抓取的数据从 Scrapy 以 csv 或 json 格式上传到 Amazon S3?

BeautifulSoup 使用循环从多个 div 中抓取信息到 JSON

从whattomine中的链接接收JSON数据而不抓取HTML

将抓取的数据附加到 JSON 文件

网站爬取-案例三:今日头条抓取(ajax抓取JS数据)