Set json=payload
请求将添加您需要的标头:
url = 'http://api.scb.se/OV0104/v1/doris/en/ssd/BE/BE0101/BE0101A/BefolkningNy'
payload = ....
r = requests.post(url, json=payload)
这将为您提供 json:
In [7]:
...: r = requests.post(url, json=payload)
...: print(r.json())
...:
{u'data': [{u'values': [u'2054343'], u'key': [u'01', u'2010']}, {u'values': [u'2091473'], u'key': [u'01', u'2011']}], u'comments': [], u'columns': [{u'text': u'region', u'code': u'Region', u'type': u'd'}, {u'text': u'year', u'code': u'Tid', u'type': u't'}, {u'text': u'Population', u'code': u'BE0101N1', u'type': u'c'}]}
如果你碰巧得到一个json.decoder.JSONDecodeError:意外的 UTF-8 BOM(使用 utf-8-sig 解码):错误将编码设置为utf-8-sig:
r = requests.post(url, json=payload)
r.encoding = "utf-8-sig"
print(r.json())