Python请求,返回:解析值L.Path时遇到意外字符

2024-04-19 23:05:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图从交易台的(沙盒)api获取身份验证令牌,但我收到400响应,其中说明:

"Error reading Content-Type 'application/json' as JSON: Unexpected character encountered while parsing value: L. Path '', line 0, position 0."

整体response.json()

{u'ErrorDetails': [{u'Reasons': [u"Error reading Content-Type 'application/json' as JSON: Unexpected character encountered while parsing value: L. Path '', line 0, position 0."], u'Property': u'TokenRequest'}], u'Message': u'The request failed validation. Please check your request and try again.'}

我的脚本(可运行):

^{pr2}$

Sandbox docs here

我相信这意味着我的headersvar没有被requests正确序列化,这似乎是不可能的,或者交易台没有正确地反序列化。我已经进入了requests库,但我似乎无法破解它,正在寻找其他输入。在


Tags: jsonapplicationvalueastype交易errorcontent
1条回答
网友
1楼 · 发布于 2024-04-19 23:05:51

你必须这么做

import json

并将dict转换为json:

^{pr2}$

另一种方法是明确使用json作为参数:

response = requests.post(url, headers=headers, json=data)

背景:在请求的prepare_body方法中,字典被显式地转换为json,并自动设置内容头:

if not data and json is not None:
        content_type = 'application/json'
        body = complexjson.dumps(json)

如果您传递data=data,那么您的数据将只进行形式编码(请参见http://docs.python-requests.org/en/latest/user/quickstart/#more-complicated-post-requests)。如果希望json成为http主体的内容类型,则需要将其显式地转换为json。在

您的后续问题是为什么头不必转换为json。头可以简单地作为字典传递到请求中。不需要将其转换为json。原因在于具体实施。在

相关问题 更多 >