将带有特殊选项的curl请求转换为Python请求

时间:2019-12-19 13:24:10

标签: python curl python-requests

我正在尝试通过将文本文件作为查询的一部分来查询公共服务(DBpedia)。

curl -X POST -g -H "Accept: application/json" --data-urlencode text@wiki_00 https://api.dbpedia-spotlight.org/en/annotate

使用curl我可以使用--data-urlencode text@wiki_00来发布大型文本文件作为查询的文本输入。这是必需的,否则您可以为文本提供多少文本作为一个限制,如果超出此限制,则返回错误代码414:URI TOO LARGE。

我的问题是,如何使用Python requests复制此行为?

我的尝试


f = open("wiki_00", "r")
myfile = f.read()

headers = { 'Accept': 'application/json', , "content-type": "application/x-www-form-urlencoded" }
params = params = (
        ('text', myfile),
        ('confidence', confidence) #this is by default 0.5, not obligatory
    )

response = requests.post('https://api.dbpedia-spotlight.org/en/annotate',headers=headers, params=params)

但是,这尝试将请求发送到太大的URI,并且我再次收到错误代码414。我怎样才能使其完全像curl回复?与--data-urlencode text@wiki00吗?

0 个答案:

没有答案