python之json处理
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。
以上是网上对json的解释,其实只要记住是一种轻量的数据交换格式就可以了,确实方便,可以把数据写入文件中,也可将数据当做字符串使用,但需要注意的是:
1.字符串输入json时,对元素需要使用双引号,单引号容易出错
2.数据写入文件时,需要注意圆括号,也叫小括号,使用json.dump()默认会将有序排列转化为列表存入json文件,所以如果你的数据中有元组的话需要注意这一点
3. json 字符串内部的字典、列表中的元素,如果是字符串的话,必须用双引号
当然,最重要的还是需要先导入json模块:
import json
字符串解析:
json.dumps() #编码:把一个Python对象编码转换成Json字符串
json.loads() #解码:把Json格式字符串解码转换成Python对象
栗子:
add_contect_str=‘{"backend": "www.oldboy.org","record":{"server": "100.1.7.9","weight": 20,"maxconn": 3000}}’
add_contect=json.loads(add_contect_str)
search_info=add_contect['backend']
weight=add_contect['record']['weight']
server=add_contect['record']['server']
maxconn=add_contect['record']['maxconn']
文件解析:
文件内容:
{
"汽车": {
"BMW X3": {
"price": 499999,
"stock": 399,
"belong": "汽车"
},
"PASST": {
"price": 299999,
"stock": 297,
"belong": "汽车"
},
"Tesla Model S": {
"price": 799999,
"stock": 3000,
"belong": "汽车"
},
"Porsche 911": {
"price": 2999999,
"stock": 594,
"belong": "汽车"
}
},
"手机": {
"锤子2(这特么真是手机)": {
"price": 998,
"stock": 2994,
"belong": "手机"
},
"华为Mate": {
"price": 2999,
"stock": 5996,
"belong": "手机"
},
"Iphone": {
"price": 5888,
"stock": 2998,
"belong": "手机"
},
"XiaoMi 4": {
"price": 1999,
"stock": 5396,
"belong": "手机"
}
},
"服装": {
"小白鞋": {
"price": 900,
"stock": 5964,
"belong": "服装"
},
"T恤": {
"price": 300,
"stock": 892,
"belong": "服装"
},
"驴牌腰带": {
"price": 9999,
"stock": 2999,
"belong": "服装"
},
"Nudie牛仔裤": {
"price": 699,
"stock": 3978,
"belong": "服装"
}
},
"电脑": {
"Mac Air": {
"price": 6999,
"stock": 6002,
"belong": "电脑"
},
"Mac pro": {
"price": 9999,
"stock": 3995,
"belong": "电脑"
},
"IBM X240": {
"price": 6999,
"stock": 3003,
"belong": "电脑"
},
"Surface Book": {
"price": 8999,
"stock": 3020,
"belong": "电脑"
}
},
"家电": {
"洗衣机": {
"price": 999,
"stock": 597,
"belong": "家电"
},
"彩电": {
"price": 5000,
"stock": 398,
"belong": "家电"
},
"微波炉": {
"price": 800,
"stock": 2995,
"belong": "家电"
},
"冰箱": {
"price": 3000,
"stock": 300,
"belong": "家电"
},
"热水器": {
"price": 600,
"stock": 900,
"belong": "家电"
}
}
}
解析:
user_info=json.load(open('user_info','r')) #读数据
json.dump(goods,open('goods_info','w'),ensure_ascii=False,indent=1) #写入数据
其中,ensure_ascii=False表示不转编码,如果数据中有中文,没有ensure_ascii参数时,会转为乱码。indent为缩进,让数据看起来更有序,优雅的装逼法则。
排序:sort_keys=True,排序使数据看起来更有序,虽然字典的是无序的,然并卵。。。
import json
data1 = {'b':789,'c':456,'a':123}
data2 = {'a':123,'b':789,'c':456}
d1 = json.dumps(data1,sort_keys=True)
d2 = json.dumps(data2)
d3 = json.dumps(data2,sort_keys=True)
print(d1)
print(d2)
print(d3)
print(d1==d2)
结果:
{"a": 123, "b": 789, "c": 456}
{"c": 456, "b": 789, "a": 123}
{"a": 123, "b": 789, "c": 456}
False
[Finished in 0.1s]
python之json处理的更多相关文章
- Json概述以及python对json的相关操作
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Langu ...
- 使用Python解析JSON数据的基本方法
这篇文章主要介绍了使用Python解析JSON数据的基本方法,是Python入门学习中的基础知识,需要的朋友可以参考下: ----------------------------------- ...
- python 序列化 json pickle
python的pickle模块实现了基本的数据序列和反序列化.通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储:通过pickle模块的反序列化操作,我们能够从文件 ...
- Python处理json格式的数据文件(一些坑、一些疑惑)
这里主要说最近遇到的一个问题,不过目前只是换了一种思路先解决了,脑子里仍然有疑惑,只能怪自己太菜. 最近要把以前爬的数据用一下了,先简单的过滤一下,以前用scrapy存数据的时候为了省事也为了用一下它 ...
- Python处理JSON
从开源中国的博客搬来,合并博客 一.JSON是什么? JSON是一种轻量级的数据交换格式 二.Python处理JSON的思维 其实很容易理解,无非是将数据编成JSON格式数据和吧JSON格式的数据解析 ...
- Python处理JSON数据
python解析json时为了方便,我们首先安装json模块,这里选择demjson,官方网址是:http://deron.meranda.us/python/demjson/ 访问之后点击页面的的D ...
- Json概述以及python对json的相关操作(转)
什么是json: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programm ...
- python 格式化 json输出
利用python格式化json 字符串输出. $ echo '{"json":"obj"}' | python -m json.tool 利用python -m ...
- python解析json
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 引用 import json 编码:把一个Python对象编码转换成Json字符串 json.dumps ...
- python 解析json loads dumps
认识 引用模块 重要函数 案例 排序 缩进参数 压缩 参考 认识 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于JavaScript(Standa ...
随机推荐
- m_atoi
自己实现atoi函数 函数定义:将字符串转换成整型数:atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结 ...
- Android --其他测试点
全球化测试: 语言方向,参考:https://developer.android.google.cn/guide/topics/resources/pseudolocales. Spot locali ...
- firewall 相关命令
1.firewalld的基本使用 启动: systemctl start firewalld 查看状态: systemctl status firewalld 停止: systemctl disabl ...
- jquery动画函数里面可以跟一个回调函数,表示动画结束后执行的代码
jquery动画函数里面可以跟一个回调函数,表示动画结束后执行的代码 使用js监听动画结束后进行的操作: $ele.fadeIn(300,function(){...}) $ele.fadeOut(3 ...
- CefSharp支持flash
https://www.cnblogs.com/yaosj/p/10811687.html
- Mysql查看所有表的数据量
##查看所有表信息 SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'pcms-zgh20190327' ##查看各个表数据量 ...
- iSCSI引入FC/SAN
由 cxemc 在 2013-9-24 上午9:10 上创建,最后由 cxemc 在 2013-9-24 上午9:10 上修改 版本 1 集成iSCSI 和FC SAN有五种常见的方法,各有优缺,适应 ...
- NCNN使用总结
目录 NCNN简介 NCNN注意事项 NCNN使用心得 小技巧 小想法 NCNN简介 ncnn 是一个为手机端极致优化的高性能神经网络前向计算框架.ncnn 从设计之初深刻考虑手机端的部署和使用.无第 ...
- TCP四次握手断开连接
建立连接非常重要,它是数据正确传输的前提:断开连接同样重要,它让计算机释放不再使用的资源.如果连接不能正常断开,不仅会造成数据传输错误,还会导致套接字不能关闭,持续占用资源,如果并发量高,服务器压力堪 ...
- 在SpringMVC中操作Session、Request、Response对象
示例 @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper user ...