首页 文章

Python请求给出了词汇JSON错误 . 如何解决这个问题?

提问于
浏览
1

我正在尝试在python中构建一个动态请求并发送它,但我收到错误 - “你提交的JSON中存在一个问题:词法错误:json文本中的char值无效 . ”

我的代码:

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'设置值?

2 回答

  • -1

    你忘记了动态值的双引号(在此更正):

    data = '{\n  "datapoint": {\n    "value": "' + val + '",\n    "metadata": {\n      "   key1": "",\n      "key2": ""\n    }\n  }\n}'
    
  • 0

    停止使用这种方式将数据转换为字符串,您需要 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}
    

相关问题