headers是请求问题

AttributeError: 'str' object has no attribute 'items'

今天在使用request进行发送请求时,

dic = dict(map(lambda x, y: [x, y], list1, list2))
                headers= json.dumps(dic, separators=(',', ':'), ensure_ascii=False)
                data=pdict[i]
                response=requests.post(url=url,headers=headers,data=data)

由于把headers转化成了字符串,导致没有请求成功,出现:AttributeError: 'str' object has no attribute 'items'

这个,通过网络查找,才知道,原理headers原来是字典格式,不是json格式:

后来改为如下格式,才算是解决了。

dic = dict(map(lambda x, y: [x, y], list1, list2))
                #headers= json.dumps(dic, separators=(',', ':'), ensure_ascii=False)
                data=pdict[i]
                response=requests.post(url=url,headers=dic,data=data)

你正在传递一个字符串 ; headers不能永远是一个JSON编码字符串,它始终是一个Python字典。

 JSON编码的对象看起来很像Python字典表示法,但是它们远非相同的东西。

requestsAPI明确指出,headers必须是一本字典:

headers – (optional) Dictionary of HTTP Headers to send with the Request

SON数据是您将内容发送到另一台服务器的东西,而不是您用来与Python API进行通信的东西。

发布了84 篇原创文章 · 获赞 46 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/gufenchen/article/details/100825377