首页 > 解决方案 > Python 请求给出了词法 JSON 错误。如何解决这个问题?

问题描述

我正在尝试在 python 中构建一个动态请求并发送它,但我收到错误消息 - “您提交的 JSON 中有问题:词法错误:json 文本中的字符无效。”

我的代码:

 headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'auth_token ' + auth_token,
}
data = '{\n  "datapoint": {\n    "value": ' + val + ',\n    "metadata": {\n      "   key1": "",\n      "key2": ""\n    }\n  }\n}'
response = requests.post(url, headers=headers, data=data)

但是,如果我发送硬编码值,则请求成功:

data = '{\n  "datapoint": {\n    "value": "120",\n    "metadata": {\n      "key1": "",\n      "key2": ""\n    }\n  }\n}'

如何使用变量“val”设置值?

标签: pythonjsonpython-requests

解决方案


停止使用这种方式将数据转换为字符串,您需要json.dumps().

import json

data = {"A":1,
        "B":2
                }
to_str = json.dumps(data)
print(type(to_str),to_str)
# <class 'str'> {"A": 1, "B": 2}

推荐阅读