Python:在将URL结果转换为JSON文件时,在每个项目后添加延迟

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python:在将URL结果转换为JSON文件时,在每个项目后添加延迟相关的知识,希望对你有一定的参考价值。

我有以下脚本,它将几个API调用列表的结果放入一个列表,然后将该列表写入JSON文件,但我限制为每秒2次调用。

with open('data.json', 'a') as fp:
    json.dump([requests.get(url).json() for url in urls], fp, indent=2)

time.sleep(0.5)可以达到这个目的吗?如果是这样,我不太确定如何在这个阶段。

任何帮助,将不胜感激!

答案

您可以先收集数据,然后最后对其进行JSON编码并将其写下来:

import json
import requests
import time

results = []  # a list to hold the results
for url in urls:  # iterate over your URLs sequence
    results.append(requests.get(url).json())  # fetch and append to the results
    time.sleep(0.5)  # sleep for at least half a second
with open("data.json", "a") as f:  # not sure if you want to append, tho
    json.dump(results, f, indent=2)  # write everything down as JSON

实际上,你也是这样做的,无论如何,你只需要解开列表理解部分,这样你就可以注入time.sleep()了。

以上是关于Python:在将URL结果转换为JSON文件时,在每个项目后添加延迟的主要内容,如果未能解决你的问题,请参考以下文章

python模块-jsonpickle

使用 ObjectMapper - 如何将 JSON 结果快速转换为 TableView

Python Requests post并将得到结果转换为json

在将 json 反序列化为对象时,使用 jackson 将 asp.net / MS 专有 json Dateformat 转换为 java8 LocalDateTime

使用 PHP 从 MySQL 结果输出复杂的 JSON

如何在将jsonObject转换为模型对象时检测缺失的字段