request模块做post请求时,body为json格式,并且带有中文,如何请求
# encoding=utf-8
import requests
url = 'http://httpbin.org/post'
d = {'key1': 'value1', 'key2': '你好'}
r = requests.post(url, json=d)
print r.text
这样写的话,请求的body变成了{"key2": "\u4f60\u597d", "key1": "value1"}
# encoding=utf-8
import json
import requests
url = 'http://httpbin.org/post'
d = {'key1': 'value1', 'key2': u'你好'}
r = requests.post(url, data=json.dumps(d, ensure_ascii=False))
print r.text
这样写的话报错:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-11: ordinal not in range(128)
如何才能使请求的body为:{"key2": "你好", "key1": "value1"}
后台接口只能解析json,并且一定要是中文才能解析出来,如果是unicode编码的中文则会报错