【问题标题】:Python3 - Invalid JSON payloadPython3 - 无效的 JSON 有效负载
【发布时间】:2020-08-11 14:21:13
【问题描述】:

我用我的变量发出 api 请求并得到一个错误:

{"error":{"code":"BAD_REQUEST","message":"Invalid JSON payload","data":[{"name":"cause","code":"","value":"json: cannot unmarshal string into Go value of type map[string]json.RawMessage","message":""}]}}

但是如果我手动将此变量的值复制粘贴到 data1 作为字符串 - 一切正常。什么错误?

def fastStockUpdate() :  
    data1 = {'stocks': [{'product_id': 678904, 'offer_id': 'NSIN0013720152', 'stock': 0}, {'product_id': 678895, 'offer_id': 'NSIN0013720163', 'stock': 0}]}
    data2 = tempStockLine
    
    url = 'http://api-seller.ozon.ru/v1/product/import/stocks'
    print(data1)
    headers = {'content-type': 'application/json', 'Host': 'api-seller.ozon.ru', 'Client-Id': 'xx',
               'Api-Key': 'xx'}
    response = requests.post(url, headers=headers, json=data1)
    print(response.text)

【问题讨论】:

  • 按照以下建议使用双引号。此外,您还需要此请求的 API 密钥。

标签: python json parsing


【解决方案1】:

使用双引号代替单引号。

data1 = {"stocks": [{"product_id": 678904, "offer_id": "NSIN0013720152", "stock": 0}, {"product_id": 678895, "offer_id": "NSIN0013720163", "stock": 0}]}

【讨论】:

  • 同样的问题。如果我从变量中复制粘贴 str 并手动放入数据(data1),则请求完成并且我得到了很好的答案。但如果我连接到数据 str 变量 - 我得到错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-22
  • 1970-01-01
  • 2020-12-01
  • 2021-05-23
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
相关资源
最近更新 更多