从文件读出数据:默认utf8编码
json.dumps()输出数据:默认unicode编码
json读取(json是种通用的数据传输格式)
import ujson as json #for performance
jobj = json.loads(json_str) #type(jobj)==<type ‘dict’>
json_str = json.dumps(jobj) #默认输出unicode
json.dumps(jobj, ensure_ascii=False) #输出utf8格式
字符串做key:
>>> s={}
>>> s[1]=((2,3))
>>> json.dumps(s)
'{"1":[2,3]}’
log,redis,mc_cache,hbase存储都建议使用json格式
python -mjson.tool #json排版显示
ultra json不支持python中long类型:
>>> import json, ujson
>>> json.dumps(18446744073709551616L)
'18446744073709551616'
>>> ujson.dumps(18446744073709551616L)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OverflowError: long too big to convert
json.dumps输出的字符串手动粘贴置为常量,需要字符串转义,vim操作是s/"/\\"/g
简单介绍:
json格式:
中文编码
def to_utf8(s):
return s if isinstance(s, str) else s.encode('utf8')
def to_unicode(s):
return s if isinstance(s, unicode) else s.decode('utf8')
中文unicode不能写文件
空格转utf8后无法用strip()去除
>>> s=u' 有的时候,之所以哭泣,并不是因为软弱,而是因为坚强太久。@_@search_tab'
>>> t=u'有的时候,之所以哭泣,并不是因为软弱,而是因为坚强太久。@_@search_tab'
>>> s
u'\xa0\u6709\u7684\u65f6\u5019\uff0c\u4e4b\u6240\u4ee5\u54ed\u6ce3\uff0c\u5e76\u4e0d\u662f\u56e0\u4e3a\u8f6f\u5f31\uff0c\u800c\u662f\u56e0\u4e3a\u575a\u5f3a\u592a\u4e45\u3002@_@search_tab'
>>> t
u'\u6709\u7684\u65f6\u5019\uff0c\u4e4b\u6240\u4ee5\u54ed\u6ce3\uff0c\u5e76\u4e0d\u662f\u56e0\u4e3a\u8f6f\u5f31\uff0c\u800c\u662f\u56e0\u4e3a\u575a\u5f3a\u592a\u4e45\u3002@_@search_tab'
>>> s.strip()
u'\u6709\u7684\u65f6\u5019\uff0c\u4e4b\u6240\u4ee5\u54ed\u6ce3\uff0c\u5e76\u4e0d\u662f\u56e0\u4e3a\u8f6f\u5f31\uff0c\u800c\u662f\u56e0\u4e3a\u575a\u5f3a\u592a\u4e45\u3002@_@search_tab'
>>> t.strip()
u'\u6709\u7684\u65f6\u5019\uff0c\u4e4b\u6240\u4ee5\u54ed\u6ce3\uff0c\u5e76\u4e0d\u662f\u56e0\u4e3a\u8f6f\u5f31\uff0c\u800c\u662f\u56e0\u4e3a\u575a\u5f3a\u592a\u4e45\u3002@_@search_tab'
>>> s.encode('utf8')
'\xc2\xa0\xe6\x9c\x89\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x99\xef\xbc\x8c\xe4\xb9\x8b\xe6\x89\x80\xe4\xbb\xa5\xe5\x93\xad\xe6\xb3\xa3\xef\xbc\x8c\xe5\xb9\xb6\xe4\xb8\x8d\xe6\x98\xaf\xe5\x9b\xa0\xe4\xb8\xba\xe8\xbd\xaf\xe5\xbc\xb1\xef\xbc\x8c\xe8\x80\x8c\xe6\x98\xaf\xe5\x9b\xa0\xe4\xb8\xba\xe5\x9d\x9a\xe5\xbc\xba\xe5\xa4\xaa\xe4\xb9\x85\xe3\x80\x82@_@search_tab'
>>> t.encode('utf8')
'\xe6\x9c\x89\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x99\xef\xbc\x8c\xe4\xb9\x8b\xe6\x89\x80\xe4\xbb\xa5\xe5\x93\xad\xe6\xb3\xa3\xef\xbc\x8c\xe5\xb9\xb6\xe4\xb8\x8d\xe6\x98\xaf\xe5\x9b\xa0\xe4\xb8\xba\xe8\xbd\xaf\xe5\xbc\xb1\xef\xbc\x8c\xe8\x80\x8c\xe6\x98\xaf\xe5\x9b\xa0\xe4\xb8\xba\xe5\x9d\x9a\xe5\xbc\xba\xe5\xa4\xaa\xe4\xb9\x85\xe3\x80\x82@_@search_tab'
>>> s.encode('utf8').strip()
'\xc2\xa0\xe6\x9c\x89\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x99\xef\xbc\x8c\xe4\xb9\x8b\xe6\x89\x80\xe4\xbb\xa5\xe5\x93\xad\xe6\xb3\xa3\xef\xbc\x8c\xe5\xb9\xb6\xe4\xb8\x8d\xe6\x98\xaf\xe5\x9b\xa0\xe4\xb8\xba\xe8\xbd\xaf\xe5\xbc\xb1\xef\xbc\x8c\xe8\x80\x8c\xe6\x98\xaf\xe5\x9b\xa0\xe4\xb8\xba\xe5\x9d\x9a\xe5\xbc\xba\xe5\xa4\xaa\xe4\xb9\x85\xe3\x80\x82@_@search_tab'
>>> t.encode('utf8').strip()
'\xe6\x9c\x89\xe7\x9a\x84\xe6\x97\xb6\xe5\x80\x99\xef\xbc\x8c\xe4\xb9\x8b\xe6\x89\x80\xe4\xbb\xa5\xe5\x93\xad\xe6\xb3\xa3\xef\xbc\x8c\xe5\xb9\xb6\xe4\xb8\x8d\xe6\x98\xaf\xe5\x9b\xa0\xe4\xb8\xba\xe8\xbd\xaf\xe5\xbc\xb1\xef\xbc\x8c\xe8\x80\x8c\xe6\x98\xaf\xe5\x9b\xa0\xe4\xb8\xba\xe5\x9d\x9a\xe5\xbc\xba\xe5\xa4\xaa\xe4\xb9\x85\xe3\x80\x82@_@search_tab’
参考:也谈 Python 的中文编码处理
- python判断字符串是否是json格式方法分享
python判断字符串是否是json格式方法分享 在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例: ...
- python 使用eval() 可以将json格式的数据,转换为原始数据
使用python 自带的函数可以将json 格式的数据(也就是字符串)转换为原始格式的数据, 当使用json.loads()无法将json格式的数据转换为原始数据(存在多层各种格式类型数据的嵌套), ...
- Python mysql表数据和json格式的相互转换
功能: 1.Python 脚本将mysql表数据转换成json格式 2.Python 脚本将json数据转成SQL插入数据库 表数据: SQL查询:SELECT id,NAME,LOCAL,mobil ...
- Python:numpy数组转换为json格式
在python中,如何将一个numpy数组转换为json格式? 这是最近遇到的一个问题,做个笔记. 假设arr为numpy数组,将其转换为json格式: 总体思想是①首先转换为python的list, ...
- python requests方法post请求json格式处理
方法如下: import requestsimport json data = { 'a': 123, 'b': 456} ## headers中添加上content-type这个参数,指 ...
- python读取excel数据为json格式(兼容xls\xlsx)
做自动化时需要从excel读取数据: 本文实现将excel文件数据读取为json格式,方便自动化调用 读取xls文件 使用xlrd读取xls文件代码: import xlrd def read_xls ...
- python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出
在python中,要输出json格式,需要对json数据进行编码,要用到函数:json.dumps json.dumps() :是对数据进行编码 #coding=gbkimport json dict ...
- python 把数据 json格式输出
有个要求需要在python的标准输出时候显示json格式数据,如果缩进显示查看数据效果会很好,这里使用json的包会有很多操作 import json date = {u'versions': [{u ...
- Python将JSON格式数据转换为SQL语句以便导入MySQL数据库
前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...
随机推荐
- GPG入门 - 练习笔记
GPG入门练习笔记 参考阮一峰的GPG入门教程http://www.ruanyifeng.com/blog/2013/07/gpg.html 1.加密 1)刘言机器: 用王老师公钥加密gp ...
- opencv中读写视频
1.介绍 OpenCV 读写视频之前,先介绍一下编解码器(codec) .如果是图像文件, 我们可以根据文件扩展名得知图像的格式.但是此经验并不能推广到视频文件中. 有些 OpenCV 用户会碰到奇怪 ...
- Dreamweaver Flash Photoshop网页设计综合应用 (智云科技) [iso] 1.86G
全书共15章,主要包括网页制作基础.Dreamweaver CC网页制作.Photoshop CC网页图像设计.Flash CC网页动画设计以及综合案例实战5个部分.通过本书的学习,不仅能让读者学会三 ...
- oracle connect by 递归,反递归,自动补全查询实现
递归: select * from t_pams_solution t start with t.id is null connect by prior id = t.parent_id ...
- linux linux系统常用设置
linux linux系统常用设置 一.设置开机时开启数字键 修改rc.local文件 命令:vi /etc/rc.local rc.local文件中增加如下代码: INITTY=/dev/tty ...
- 多层mvc,thikphp进阶
程序员,是一种生活态度. 我尽忠恪守,我努力进取,热衷于解决问题,希望得到同样的回报. 我遇到问题,将所有的力量用在解决问题,而不是抱怨,推卸责任上. ------------------------ ...
- loj #2055. 「TJOI / HEOI2016」排序
#2055. 「TJOI / HEOI2016」排序 题目描述 在 2016 年,佳媛姐姐喜欢上了数字序列.因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他. 这个 ...
- loj #2023. 「AHOI / HNOI2017」抛硬币
#2023. 「AHOI / HNOI2017」抛硬币 题目描述 小 A 和小 B 是一对好朋友,他们经常一起愉快的玩耍.最近小 B 沉迷于**师手游,天天刷本,根本无心搞学习.但是已经入坑了几个 ...
- ribbon负载均衡
ribbon的负载均衡策略有很多 IRule 这是所有负载均衡策略的父接口,里边的核心方法就是choose方法,用来选择一个服务实例. AbstractLoadBalancerRule Abstrac ...
- 【Cracking the Code Interview(5th edition)】一、数组与字符串(C++)
1.1 实现一个算法,确定一个字符串的所有字符是否全都不同.不允许使用额外的数据结构. 解答:这里假定字符集为ASCII码,可以与面试官沟通确认字符串使用的字符集.由于字符集是有限的,建立一个数组模拟 ...