[英]Python requests post json raw data
如何在python上使用Resuest lib發布RAW數據? 我正在嘗試登錄。
Json拋出異常
TypeError:set(['“clienteLogin”:{“Token”:“b94261f7e6744380919d406f576110cc”,“Operador”:“”,“IdUnidadeNegocio”:5,“PalavraCaptcha”:“”,“Senha”:“muranga21”,“cadastro” :“on”,“Email”:“xazune@car101.pro”},“mesclarCarrinho”:true,“令牌”:“b94261f7e6744380919d406f576110cc”,“IdUnidadeNegocio”:5,“Operador”:“”}}])不是JSON可序列化
身體原始(郵差)
{ “clienteLogin”:{ “令牌”: “cbf36fb0e3de4b65ab0037303979a806”, “Operador”: “”, “IdUnidadeNegocio”:5 “PalavraCaptcha”: “”, “Senha”: “muranga21”, “cadastro”: “上”, “電子郵件”: “xazune@car101.pro”}, “mesclarCarrinho”:真正的 “令牌”: “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 = '{"clienteLogin":"Token":"'+token+'","Operador":"","IdUnidadeNegocio":5,"PalavraCaptcha":"","Senha":"muranga21","cadastro":"on","Email":"xazune@car101.pro"},"mesclarCarrinho":true,"Token":"'+token+'","IdUnidadeNegocio":5,"Operador":""}'
或字典和requests
將其轉換為字符串。
data = {
"clienteLogin": {
"Token": token,
"Operador": "",
"IdUnidadeNegocio": 5,
"PalavraCaptcha": "",
"Senha": "muranga21",
"cadastro": "on",
"Email": "xazune@car101.pro"
},
"mesclarCarrinho": True,
"Token": token,
"IdUnidadeNegocio": 5,
"Operador":"",
}
編輯:你不需要json.dumps()
和header
- requests
有json=
data = {
"clienteLogin": {
"Token": token,
"Operador": "",
"IdUnidadeNegocio": 5,
"PalavraCaptcha": "",
"Senha": "muranga21",
"cadastro": "on",
"Email": "xazune@car101.pro"
},
"mesclarCarrinho": True,
"Token": token,
"IdUnidadeNegocio": 5,
"Operador":"",
}
url = "https://carrinho.extra.com.br/Api/checkout/Cliente.svc/Cliente/Login"
req3 = s.post(url, json=data)
print(req3.json())
結果:
{'EfetuarLoginResult': {'DataNascimentoAno': '1984', ... }
BTW: req3.json()
轉換為python字典
data = req3.json()
print(data['EfetuarLoginResult']['DataNascimentoAno'])
您已將data
變量括在單引號中。 刪除它們只需使用標准字典。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.