python - 在 Python 3 中使用 POST URI
问题描述
我正在尝试将数据发布到通过 URL 获取文本数据的网站:"http://data.bioontology.org/annotator?text=" + theTextData
我想使用 POST URI 来获取数据。这是我的代码:
def get_annotations(text, url):
headers = [('Authorization', 'apikey token=' + API_KEY)]
data = text
response = requests.request("POST",url,headers=headers,data=data)
return response.text.encode('utf-8')
annotations = get_annotations(text, "http://data.bioontology.org/annotator?text=" + urllib.parse.quote(text))
运行时出现此错误:
Traceback (most recent call last):
...
response = requests.request("POST",url,headers=headers,data=data)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/requests/api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/requests/sessions.py", line 516, in request
prep = self.prepare_request(req)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/requests/sessions.py", line 449, in prepare_request
p.prepare(
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/requests/models.py", line 315, in prepare
self.prepare_headers(headers)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/requests/models.py", line 447, in prepare_headers
for header in headers.items():
AttributeError: 'list' object has no attribute 'items'
我该如何解决?我是否错误地使用了 POST?
解决方案
您的标题应该是字典,而不是列表中的元组。
headers = {'Authorization': 'apikey token=' + API_KEY}
推荐阅读
- azure - K8S - 获取配置地图数据问题
- jquery - 单击多个帖子具有相同的div类和按钮类时获取img src
- html - 使用 Angular 7 按开始和结束匹配突出显示单词
- c++ - 截图和复制的位图部分在结构上有什么区别?
- windows - 批处理文件直到第二次运行才获得目录名称
- java - @Import 注册非@Component bean
- django - django 中的跨域会话共享
- c# - 在 .NET Standard 中为所有平台获取设备名称
- swift - 如何快速加载 LLVM 函数传递?
- azure-service-fabric - 是否可以在后端之间进行单个前端选择(动态定义)?