从文件读出数据:默认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格式的更多相关文章

  1. python判断字符串是否是json格式方法分享

    python判断字符串是否是json格式方法分享 在实际工作中,有时候需要对判断字符串是否为合法的json格式 解决方法使用json.loads,这样更加符合'Pythonic'写法 代码示例:   ...

  2. python 使用eval() 可以将json格式的数据,转换为原始数据

    使用python 自带的函数可以将json 格式的数据(也就是字符串)转换为原始格式的数据, 当使用json.loads()无法将json格式的数据转换为原始数据(存在多层各种格式类型数据的嵌套), ...

  3. Python mysql表数据和json格式的相互转换

    功能: 1.Python 脚本将mysql表数据转换成json格式 2.Python 脚本将json数据转成SQL插入数据库 表数据: SQL查询:SELECT id,NAME,LOCAL,mobil ...

  4. Python:numpy数组转换为json格式

    在python中,如何将一个numpy数组转换为json格式? 这是最近遇到的一个问题,做个笔记. 假设arr为numpy数组,将其转换为json格式: 总体思想是①首先转换为python的list, ...

  5. python requests方法post请求json格式处理

    方法如下: import requestsimport json data = {    'a': 123,    'b': 456} ## headers中添加上content-type这个参数,指 ...

  6. python读取excel数据为json格式(兼容xls\xlsx)

    做自动化时需要从excel读取数据: 本文实现将excel文件数据读取为json格式,方便自动化调用 读取xls文件 使用xlrd读取xls文件代码: import xlrd def read_xls ...

  7. python json.dumps()函数输出json格式,使用indent参数对json数据格式化输出

    在python中,要输出json格式,需要对json数据进行编码,要用到函数:json.dumps json.dumps() :是对数据进行编码 #coding=gbkimport json dict ...

  8. python 把数据 json格式输出

    有个要求需要在python的标准输出时候显示json格式数据,如果缩进显示查看数据效果会很好,这里使用json的包会有很多操作 import json date = {u'versions': [{u ...

  9. Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

    前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...

随机推荐

  1. C++二进制文件读写

    简单二进制文件读写,多文件 /*Demo9.1.cpp*/ #include <iostream> #include <fstream> #include <string ...

  2. java全栈day02案例

    商场库存清单案例 A: 案例分析. * a:观察清单后,可将清单分解为三个部分(清单顶部.清单中部.清单底部) * b:清单顶部为固定的数据,直接打印即可 * c:清单中部为商品,为变化的数据,需要记 ...

  3. webapi 返回json

    web api 默认的已 xml 格式返回数据 现在开发一般都是以 json 格式为主 下面配置让 webapi 默认返回 json ,在需要返回 xml 时只需要加一个查询参数 datatype=x ...

  4. java java启动方式

     java启动方式 两种方案: 1.守护进程方式启动: java –jar命令: 例如:C:\eclise\work\test.jar C:\eclise\work\test.java 打开dos:输 ...

  5. 移动端自适应个人理解与收集——rem

    rem——更好的适配移动端.这个单位我一直想弄个究竟,今天终于看了个差不多.看了很多的博客.心中总算有自己的想法.(还有vh,vw这里我这个小白还没有弄明白就先不写了.) 1.rem可以在html,b ...

  6. LINQ和Lambda表达式

    前言 前段时间接触了一种新的表达式,但是不知道这个是什么意思,所以就先站在巨人的肩膀用了,现在听师哥说这种写法是Lambda表达式.我一直以为,这个Lambda表达式和LINQ查询有异曲同工之妙,可惜 ...

  7. php 过滤重复的数组

    首先数组分为一维数组和多维数组 1.一维数组 $a = array(a,b,c,d,a,b,e,f,g); array_unique($a) 就行了 2.二维数组 $a = array( array( ...

  8. Linux安装vim编辑器

    1.ubuntu系统:普通用户下输入命令:sudo apt-get install vim-gtk (注:出现E: Unable to locate package则将命令改成sudo apt-get ...

  9. .net mvc 框架实现后台管理系统 2

    layui 数据表格 返回格式: var json = new { code = 0, count = pagers.totalRows, msg = "", data =null ...

  10. Redis学习笔记(4)—— Jedis入门

    一.Jedis介绍 Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如Java.C.C#.C++.php.Node.js.Go等. 在官方网站里列的一些Java客户端,有jedi ...