python3 json.dumps() 中文乱码问题 微信自定
python 输出一串中文字符,在控制台上(控制台使用UTF-8编码)通过print 可以正常显示,但是写入到文件中之后,中文字符都输出成ascii编码了。英文字符能正常显示可读字符。
原因:json.dumps 序列化时默认使用的ascii编码,想输出真正的中文需要指定ensure_ascii=False:更深入分析,是应为dJSONobject 不是单纯的unicode实现,而是包含了混合的unicode编码以及已经用utf-8编码之后的字符串。
json.dumps(postData,ensure_ascii=False).encode('utf-8'))
以微信 python自定义菜单
------------
import json
from basic import Basic
import urllib
import urllib.request
import urllib.parse
def create(self, postData, accessToken):
postUrl ="https://api.weixin.qq.com/cgi-bin/menu/create?access_token=%s"% accessToken
importrequests
req = requests.post(postUrl,data=json.dumps(postData,ensure_ascii=False).encode('utf-8'))
aa = req.text
print('ddd', req,'aa:', aa)
--------------
postJson = \
{
"button": [
{
"name":"看美图",
"sub_button": [
{
"type":"view",
"name":"精选",
"url":"http://www.baidu.com/"
},
{
"type":"view",
"name":"回顾",
"url":"http://www.baidu.com/"
}]
},
{
"name":"看案例",
"sub_button": [
{
"type":"click",
"name":"全部风格",
"key":"style"
},
{
"type":"view",
"name":"更多案例",
"url":"http://www.baidu.com/"
}]
},
{
"type":"view",
"name":"关于我们",
"url":"http://www.baidu.com/"
}
]
}
----------------
见:http://www.cnblogs.com/geektown/p/5144017.html