我正在尝试从文本文件中读取值(存储在列中)并将它们传递给URL参数。作者ID是唯一的,我想迭代文本文件中的ID值。
内容的数据类型是一个列表,如下所示:
['7202106849\n', '7201570041\n', ....]
这是我到目前为止编写的代码(我知道它不完整,我需要一些迭代帮助,并将内容中的作者ID作为URL参数传递)
with open('collab_id_2008.txt') as f:
content = f.readlines()
url = "https://api.elsevier.com/content/author/author_id/6602198520?view=metrics"
resp = requests.get(url, headers={'Accept':'application/json','X-ELS-APIKey': 'xxxxxxx', 'X-ELS-Insttoken': 'xxxxxxxx'})
print json.dumps(resp.json(), sort_keys=True, indent=4, separators=(',', ': '))
答案 0 :(得分:3)
以下内容应该让你前进:
import requests
import json
with open('collab_id_2008.txt') as f_input:
for id in f_input:
url = "https://api.elsevier.com/content/author/author_id/{}?view=metrics".format(id.strip())
resp = requests.get(url, headers={'Accept':'application/json','X-ELS-APIKey': 'xxxxxxx', 'X-ELS-Insttoken': 'xxxxxxxx'})
print json.dumps(resp.json(), sort_keys=True, indent=4, separators=(',', ': '))
这会读取您的输入文件,并将id
替换为您的网址。
要输出到文件,它实际上取决于您需要的格式,这是一个例子:
with open('collab_id_2008.txt') as f_input, open('output.txt', 'w') as f_output:
for id in f_input:
url = "https://api.elsevier.com/content/author/author_id/{}?view=metrics".format(id.strip())
resp = requests.get(url, headers={'Accept':'application/json','X-ELS-APIKey': 'xxxxxxx', 'X-ELS-Insttoken': 'xxxxxxxx'})
print json.dumps(resp.json(), sort_keys=True, indent=4, separators=(',', ': '))
json.dump(resp.json(), f_output)