Python3-无效的JSON有效负载

问题描述

我用我的变量发出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)

解决方法

使用双引号而不是单引号。

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