从 Postman 请求有效载荷有效,但我的无效 - 意外令牌错误

request payload from Postman works but mine doesn't - unexpected token error

我从我的邮递员 POST 请求中获取了 Python-请求代码,如下所示:

payload="{\"action\":\"ask\",
\"PortfolioItem\":{\"localAmount\":0,\"expiresAt\":\"2021-04-25T18:50:09+0000\",\"skuUuid\":\"9c0b30f6-d2e0-49ff-b8fa-c30a4d8d9b82\",\"localCurrency\":\"USD\",\"meta\":{\"discountCode\":\"\"}}}"

headers = {//bunch of headers}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

这很好用。但是当我尝试使用以下代码将新信息传递到有效负载时:

//initialize an empty payload object
payload = {
 'action': 'ask','PortfolioItem': {'expiresAt': '',
  'localAmount': 0,
  'localCurrency': 'USD',
  'meta': {'discountCode': ''},
  'skuUuid': ''
}}

//populate it with data I want to add
payload['PortfolioItem']['expiresAt'] = expiration
payload['PortfolioItem']['localAmount'] = price
payload['PortfolioItem']['skuUuid'] = sku_id

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

我收到以下错误:{"message":"Unexpected token P in JSON at position 0"}。 我也尝试将我的有效负载转换为一个字符串,即:data=str(payload),但是 returns 同样的错误 {"message":"Unexpected token ' in JSON at position 0"}。 最重要的是,我尝试只拆分原始有效负载并将其与中间的新数据连接起来,但我需要传递整数值,因此连接不起作用(除非有一种方法可以在不转换我的 int 的情况下做到这一点成一个字符串)。 不确定哪里出了问题,如有任何帮助,我们将不胜感激!

第一个是看起来有效的字符串JSON,第二个是字典。您需要将字典转换为 JSON。或使用:requests.request("POST", url, headers=headers, json=payload) 为您完成。