python json.loads json.dumps(ensure_ascii = False) 汉字乱码问题解决
python 转换为json时候 汉字编码问题
有这样一个需求:
需要一个json 文件 数据从数据库里查询出来
1. 设置文件头
- # -*- coding:utf-8 -*-
2. 连接数据库 将数据库连接数据库的编码设置为utf8
- db = MySQLdb.connect(host='数据库,user=用户名,passwd=密码,db='数据库, init_command="set names utf8" )
3. 查询出来的数据转化为json
- t = json.dumps(r, ensure_ascii=False)
如果 不加 ensure_ascii=False 输出的 t 如果有汉字的话都默认给转换成一堆编码 如果加上的话 就都能正常显示变成了汉字
不加的话: t = json.dumps(r)
- [{"category": {"label": "\u65b0\u8f66"}, "title": "\u5168\u65b0\u8d77\u4e9a\u798f\u745e\u8fea\u8def\u8bd5\u8c0d\u7167\u66dd\u5149 \u6216\u4e3a\u5b9a\u540dK3", "url": "http://auto.sohu.com/20120523/n343878794.shtml", "source": "\u641c\u72d0\u6c7d\u8f66", "time": 1337740004, "imgUrl": ""}, {"category": {"label": "\u65b0\u8f66"}, "title": "\u65b0\u5965\u8feaQ7/Q8\u66f4\u591a\u4fe1\u606f\u66dd\u5149 \u5c06\u57fa\u4e8eMLB\u5e73\u53f0", "url": "http://auto.sohu.com/20120523/n343873150.shtml", "source": "\u641c\u72d0\u6c7d\u8f66", "time": 1337737913, "imgUrl": ""}]
加上的话: t = json.dumps(r, ensure_ascii=False)
- [{"category": {"label": "新车"}, "title": "全新起亚福瑞迪路试谍照曝光 或为定名K3", "url": "http://auto.sohu.com/20120523/n343878794.shtml", "source": "汽车", "time": 1337740004, "imgUrl": ""}, {"category": {"label": "新车"}, "title": "新奥迪Q7/Q8更多信息曝光 将基于MLB平台", "url": "http://auto.sohu.com/20120523/n343873150.shtml", "source": "汽车", "time": 1337737913, "imgUrl": ""}]
我们在post请求数据时,响应的内容是json数据,但是返回的json数据中文显示有问题,变成 \uXXX的形式。这是因为中文以 unicode 编码了,而默认是以ASCII解析的,中文不在ASCII编码中,所以无法显示。
这时候我们可以用import json 然后调用json.loads() 和json.dumps()来使中文正确显示。 下面的代码(data是中文不能正常显示的json串,newjson是处理后中文正常显示的字符串)
- import json
- myjson=json.loads(data) #data是向 api请求的响应数据,data必须是字符串类型的
- newjson=json.dumps(myjson,ensure_ascii=False) #ensure_ascii=False 就不会用 ASCII 编码,中文就可以正常显示了
- print newjson
python json.loads json.dumps(ensure_ascii = False) 汉字乱码问题解决的更多相关文章
- python将字符串转换成对应的python数据类型--eval和json.loads(),json.dumps()
eval()和json.loads() 都可以将字符串转换成对应的python数据类型,举个字典的例子,同样适合其他数据类型元组.列表.集合. In [3]: ss = '{"a" ...
- python 编码文件json.loads json.dumps
import yaml d = {'name': '张三', 'age': '1'} print d jd = json.dumps(d, ensure_ascii=False, encoding=' ...
- python的eval和json.loads(),json.dumps()
eval() 将字符串当成一个表达式去执行,可以想象成一个去字符串然后执行的操作. In [1]: s = '3*8' In [2]: eval(s) Out[2]: 24 eval()和json.l ...
- python json.loads json.dumps的区别
json.loads() 是将字符串传化为字典 json.dumps () 是将字典转化为字符串 >>> dict = "{8:'bye', 'you':'coder'}& ...
- json.dumps(),json.loads(),json.dump(),json.load()方法的区别
1. json.dumps() json.dump()是将字典类型转化成字符串类型. import json dic = {'a':'1111','b':'2222','c':'3333','d':' ...
- python---json.dumps 与 json.loads /json.dump 和json.load区别
json.dumps 是将python的数据类型进行json的编码,生成json格式的数据,举例json_data = json.dumps(str) str为python的字符串类型数据,生成的j ...
- json.loads() json解码
有些json数据里面套着json 一次json.loads()后还是会有数据是json格式 { "result": { "error_code": 0, ...
- Python字符串的encode与decode研究心得乱码问题解决方法
为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“\xe4\xb8\xad\xe6\x96\x87”的形式? 为什么会报错“UnicodeEncodeError: 'asc ...
- Python字符串的encode与decode研究心得 乱码问题解决方法
以下摘自:http://www.jb51.net/article/17560.htm 为什么Python使用过程中会出现各式各样的乱码问题,明明是中文字符却显示成“\xe4\xb8\xad\xe6\x ...
随机推荐
- MVC 模型 视图, 控制器 写 三级联动
<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>& ...
- ssh 免 密码登录另一台机器 和 secureCRT的乱码问题
PS: 就是你把密钥生成好以后,放入B机器中,再登录的时候就已经有了所以就不用验证了 ========================================================= ...
- Hadoop全分布模式操作
http://blog.csdn.net/wangloveall/article/details/20767161 摘要:介绍Hadoop全分布模式操作,实现真正意义上的集群架构. 关键词:Hadoo ...
- 使用rewrite 让php 实现类似asp.net 的IHttpModule 进行带参数js文件的参数获取
asp.net 的IHttpModule 接口具有很大的作用,我们可以使用实现的模块进行全局的控制,但是在学习php 的过程中也想实现类似的功能,查找php 的文档,自己没有找到, 但是我们大家应该知 ...
- 修改Nginx的header伪装服务器
有时候为了伪装自己的真实服务器环境.不像让对方知道自己的webserver真实环境,就不得不修改我们的webserer软件了!今天看了一下baidu.com的webserver感觉像是nginx修改的 ...
- centos7 安装Zabbix3.0
1 安装Mariadb数据库(代替MySQL)yum -y install mariadb*systemctl start mariadbsystemctl enable mariadb #自启动 2 ...
- 【shell】正则表达式语法
一个正则表达式就是由普通字符(例如字符 a 到 z)以及特殊字符(称为元字符)组成的文字模式.该模式描述在查找文字主体时待匹配的一个或多个字符串.正则表达式作为一个模板,将某个字符模式与所搜索的字符串 ...
- java编码-多重(乱码)
一.1,UTF编码 - 2,ISO解码 - 3,UTF编码 - 4,ISO解码 String ISO = "ISO-8859-1"; String UTF = "UTF- ...
- c#中如何获取本机MAC地址、IP地址、硬盘ID、CPU序列号等系统信息
我们在利用C#开发桌面程序(Winform)程序的时候,经常需要获取一些跟系统相关的信息,例如用户名.MAC地址.IP地址.硬盘ID.CPU序列号.系统名称.物理内存等. 首先需要引入命名空间: us ...
- ios之gcd
看这里吧 http://www.jianshu.com/p/3a5a55e50e84