如何从文本文件中读取值并将其作为URL参数传递

时间:2016-06-16 06:56:27

标签: python python-2.7 url

我正在尝试从文本文件中读取值(存储在列中)并将它们传递给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=(',', ': '))

1 个答案:

答案 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)