【发布时间】:2017-06-17 12:49:28
【问题描述】:
如何在 python 上使用 Resuests lib 发布 RAW DATA? 我正在尝试登录。
Json 抛出异常
TypeError: set(['"clienteLogin":{"Token":"b94261f7e6744380919d406f576110cc","Operador":"","IdUnidadeNegocio":5,"PalavraCaptcha":"","Senha":"muranga21", "cadastro":"on","Email":"xazune@car101.pro"},"mesclarCarrinho":true,"Token":"b94261f7e6744380919d406f576110cc","IdUnidadeNegocio":5,"Operator":""}'] ) 不是 JSON 可序列化的
原始身体(邮递员)
{"clienteLogin":{"Token":"cbf36fb0e3de4b65ab0037303979a806","Operador":"","IdUnidadeNegocio":5,"PalavraCaptcha":"","Senha":"muranga21","cadastro":" on","Email":"xazune@car101.pro"},"mesclarCarrinho":true,"Token":"cbf36fb0e3de4b65ab0037303979a806","IdUnidadeNegocio":5,"Operador":""}
代码
import requests,json
import cookielib
from lxml import html
s = requests.session()
req1 = s.get("https://carrinho.extra.com.br/Checkout?ReturnUrl=http://www.extra.com.br#login")
content1 = req1.content
tree = html.fromstring(content1)
token = tree.xpath("//script")[0].text.split('"')[1]
data = {
'"clienteLogin":{"Token":"'+token+'","Operador":"","IdUnidadeNegocio":5,"PalavraCaptcha":"","Senha":"muranga21","cadastro":"on","Email":"xazune@car101.pro"},"mesclarCarrinho":true,"Token":"'+token+'","IdUnidadeNegocio":5,"Operador":""}'
}
headers = {
'Content-Type':'application/json'
}
req3 = s.post("https://carrinho.extra.com.br/Api/checkout/Cliente.svc/Cliente/Login",json.dumps(data),headers=headers)
print req3.content
【问题讨论】:
-
data可以是字符串或 python 字典,请求将其转换为字符串。您创建set(),因为如果您不使用内部的键和值,{}也用于创建set()。 -
我是 python 新手,需要解决什么问题?
标签: python json python-2.7 request python-requests