【问题标题】:Iterating over a csv reader object to call api with requests.get遍历 csv 阅读器对象以使用 requests.get 调用 api
【发布时间】:2015-11-25 06:22:21
【问题描述】:

我有数百家公司要使用 api 进行查询。 每个的 api url 调用都在 csv 文件的一列中,格式如下: http://api.duedil.com/open/search?q={"公司名称"}&api_key=xxxxxxxxxxxxxx

我已使用 csv 作为读取器对象打开并读取 csv 文件,但我不知道如何对其进行迭代以获取每个公司的退货详细信息,例如

for row in reader:
  requests.get(row)

在单个 url 上运行可以很好地提供我期望的 JSON 数据:

r = requests.get(url)

抱歉,如果这是一个看似微不足道的问题,但我怎样才能简单地遍历 csv 阅读器对象中的每个 url,将其输入到 requests.get 调用中,并将结果存储在某种文件对象中。 谢谢

这是 csv.reader 对象打印出来的内容:

for row in reader:

print(row)

['http://api.duedil.com/open/search?q={"Parkeon Ltd"}&api_key=xxxxxxx ']
['http://api.duedil.com/open/search?q={"M and D Foundations and Building Services Ltd"}&api_key=xxxxxxxxx ']
['http://api.duedil.com/open/search?q={"TM Lewin"}&api_key=xxxxxx ']
['http://api.duedil.com/open/search?q={"Stralfors Plc"}&api_key=xxxxxx ']
['http://api.duedil.com/open/search?q={"CPM UK Ltd"}&api_key=xxxxx ']

【问题讨论】:

  • 你能告诉我们你的 csv 文件是什么样子吗?
  • 将结果存储在列表中? l = []for row in reader: l.append(requests.get(row))
  • 上面已经展示了 csv 文件的样子。

标签: python csv python-requests


【解决方案1】:

CSV 读取器类返回一个元组,即使只有一行。尝试使用:

for row in reader:
    requests.get(row[0])

【讨论】:

  • for row in reader: requests.get(row[0]) 似乎将列表中的最后一个元素返回为: row Out[75]: ['api.duedil.com/open/search?q={"Danone Romania "}&api_key=xxxxx']
  • 根据您上面打印的内容,row[0] 应该可以正常工作。
猜你喜欢
  • 2021-12-11
  • 2017-08-11
  • 2014-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多