Python构造Authorization请求头时如何去除API key周围多余引号
解决方法
问题出在你构造请求头的拼接逻辑里主动加了多余的双引号,根本不需要用replace/strip/eval这类方法事后处理字符串,直接修改拼接规则就能解决。
你当前的错误写法:
import requests, json key = "1kjhnuig2" def api_call(): # 这里拼接的时候手动在key前后加了",才会导致最终头里带引号 r = requests.post('https://myFancyUrl',headers={'Authorization': 'ApiKey "' + (key) + '"'})
把构造Authorization头的部分改成下面任意一种写法即可:
- 用f-string(推荐,可读性更好)
headers={'Authorization': f'ApiKey {key}'}
- 用普通字符串拼接
headers={'Authorization': 'ApiKey ' + key}
修改后生成的请求头就会符合接收端要求:
'Authorization': 'ApiKey 1kjhnuig2'
提示:你之前尝试字符串处理方法没得到预期结果,是因为多余的引号是你写在拼接模板里的固定字符,不是
key变量本身携带的内容,从构造源头修正比事后处理字符串更稳妥,不会引入额外的匹配错误。
内容的提问来源于stack exchange,提问作者devops_jmo
相关产品推荐
相关产品推荐

