python程序员

python3 json.dumps() 中文乱码问题 微信自定

2017-10-18  本文已影响229人  huisheng

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

上一篇下一篇

猜你喜欢

热点阅读