Python 2.7 requests库POST请求体中有中文的处理方法

Python 2.7 requests库发送POST请求,请求体是JSON格式,JSON字符串中包含中文,可以如此处理:

  1. Python 2.7 默认的源码文件编码是 ASCIl,如果你想在源代码中使用非 ASCII 字符(比如中文),你需要在文件开头声明文件的编码。你可以在文件的第一行或第二行添加以下行:
# coding: utf-8

或者

# -*- coding: utf-8 -*-

注意:中文字符串前不要加u,如u’测试’,字符串前加u代表使用unicode编码该字符串(utf8编码汉字占3个字节。在UTF-8编码中,一个中文等于三个字节,一个中文标点占三个字节;而在Unicode编码中,一个中文(含繁体)等于两个字节。)

  1. 如果JSON字符串中的汉字是从文件中读取,该文件需要编码为utf-8格式;
  2. headers声明charset=utf-8:
   url = "http://xxxxxxxxxxx"
   headers = {"Content-Type": "application/json;charset=utf-8"} 
   data = json.dumps(params, ensure_ascii=False)
   response = requests.post(url, data, headers)

你可能感兴趣的:(python)