博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python之json处理
阅读量:6092 次
发布时间:2019-06-20

本文共 3032 字,大约阅读时间需要 10 分钟。

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 jsondata1 = {
'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]

 

转载地址:http://mumwa.baihongyu.com/

你可能感兴趣的文章
Debian 的 preinst, postinst, prerm, 和 postrm 脚本
查看>>
socket编程的select模型
查看>>
IDEA和Eclipse经常使用快捷键(Win Mac)
查看>>
ubutntu apt 源
查看>>
PHP 文件处理
查看>>
cesium之核心类Viewer简介篇
查看>>
ALSA声卡驱动中的DAPM详解之六:精髓所在,牵一发而动全身
查看>>
libev与libuv的区别
查看>>
iOS 为什么使用xcode8上传app包到appStore无法构建版本
查看>>
Tomcat优化步骤【转】
查看>>
CRC 自动判断大端 小端
查看>>
原来这样可以轻松恢复回收站删除文件
查看>>
DisparityCostVolumeEstimator.cpp
查看>>
(转)git中关于fetch的使用
查看>>
mongo DB for C#
查看>>
caffe整体框架的学习的博客,这个博客山寨了一个caffe框架
查看>>
git只拉取github部分代码的方法
查看>>
[LeetCode] Construct Quad Tree 建立四叉树
查看>>
如何避免SHRINKDATABASE & SHRINKFILE 产生索引碎片(转载)
查看>>
【SSH网上商城项目实战02】基本增删查改、Service和Action的抽取以及使用注解替换xml...
查看>>