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进行通信的东西。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值