[英]How to correctly use multiple variables imported from a file in a python loop
我正在使用 python 代码导出 Google 搜索的前 10 个结果。 但我有 100 多个不同的搜索查询,我不想为每次搜索手动更改查询。 我有想法从 .csv 文件导入我的搜索查询并将它们放在一个 var 中。 就像下面的代码:
import csv
import requests
with open('test.csv', 'r') as file:
next(file) # drop header
varlist = [row[0] for row in csv.reader(file, delimiter=",")]
for var in varlist:
payload = {'api_key': 'API_KEY', 'query':str(var), 'results':'10', 'country':'gb', 'page':'0'}
resp = requests.get('https://api.example.com', params=payload)
print (resp.text)
我的 csv 看起来像:
varlist,customer
2132,1
1234,2
当我运行上面的代码时,对于搜索查询“1234”,我只得到 output。
output:
result search query 1234
预计 output:
result search query 2132
result search query 1234
哪里出错了? 以及如何正确处理?
您需要将数据存储在 python 数据结构中,例如列表或字典:
data = [] # <- HERE
for var in varlist:
payload = {'api_key': 'API_KEY', 'query':str(var), 'results':'10', 'country':'gb', 'page':'0'}
resp = requests.get('https://api.example.com', params=payload)
data.append(resp.text) # <- HERE
print(*data, sep='\n')
# Output
result search query 2132
result search query 1234
注意:如果您的 csv 包含 header,请使用DictReader
class 而不是reader
function
解决方法很简单。 我必须像下面的代码一样将 print 放在循环中:
for var in varlist:
payload = {'api_key': 'API_KEY', 'query':str(var), 'results':'10', 'country':'gb', 'page':'0'}
resp = requests.get('https://api.example.com', params=payload)
print (resp.text)
谢谢大家对我的评论
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.