通过Python 3.5发送同步JSON请求

时间:2016-03-11 10:24:09

标签: python json csv parallel-processing python-3.5

所以我有这个并且它正在工作:

import requests
import csv


my_list = [item1, item2, item3, item4]


def write_results(file, list_to_iterate):
    with open(file, 'w') as f:
        fields = ("column_item", "column_value")
        wr = csv.DictWriter(f, delimiter=",", fieldnames=fields, lineterminator='\n')
        wr.writeheader()
        for each_item in list_to_iterate:
            try:
                r = requests.get('https://www.somewebsite.com/api/something?this='+each_item).json()
                value = str(r['value'])
            except:
                value = "none"
            wr.writerow({'column_item': each_item, 'column_value': value})


write_results('spreadsheet.csv', my_list)

我基本上将从JSON输出页面获取的输出写入CSV。我的功能很棒,操作完全符合预期。唯一的缺点是,我实际上正在迭代一个庞大的列表,因此我不得不发送大量请求。我想知道我是否有可能并行发送请求而不是等待响应然后发送下一个请求。我写入CSV的顺序甚至不重要,因此如果我检索的响应与我的列表不同步,则不会有问题。

我已经尝试过并研究了所有这些不同的方法,但我无法理解这个问题。我所见过的所有例子都更适合网页抓取,他们使用的是一组完全不同的模块(不使用请求)。

任何帮助都很高兴。这让我疯了。此外,如果可能的话,我想尽可能多地使用原生模块。

注意:Python 3.5

0 个答案:

没有答案