python编程 之 json包
1,json是什么?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,易于人阅读和编写。
我的理解就是:json是一种统一的格式化的文件,比如,一个json里放着n行,每行是一个字典,字典里存放着字段。
2,json.dumps
作用:用于将 Python 对象编码成 JSON 字符串。
语法:json.dumps(obj, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None,
encoding="utf-8", default=None, sort_keys=False, **kw) #括号中是其内部自定义的参数和参数的默认值
基本用法:
import json data=[{'a':1,'b':2,'c':3}]
json=json.dumps(data) #encode the data
print json,type(json) #结果是[{"a": 1, "c": 3, "b": 2}] <type 'str'> #很神奇,结果是字符串格式的
带参数用法:
import json data=[{'a':1,'b':2,'c':3,'d':4}]
jsondata=json.dumps(data,sort_keys=True,indent=5,separators=(',',':'))
print jsondata,type(jsondata)
sort_keys:编码成json的时候,是否按照键来排序。
indent:输出的时候每行数据缩进5个空格
separators:指定键值对的分隔符是逗号,键和值的分隔符是冒号
Skipkeys:默认值是False,如果dict的keys内的数据不是python的基本类型(str,unicode,int,long,float,bool,None),设置为False时,就会报TypeError的错误。此时设置成True,则会跳过这类key
ensure_ascii:默认值True,如果dict内含有non-ASCII的字符,则会类似\uXXXX的显示数据,设置成False后,就能正常显示
encoding:默认是UTF-8,设置json数据的编码方式。
sort_keys:将数据根据keys的值进行排序。
python转json数据类型:
3 json.loads
作用:json.loads 用于解码 JSON 数据。该函数返回 Python 字段的数据类型。
语法:json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]])
简单实例:(接上文实验)
#jsondata等于[{"a":1,"b":2,"c":3,"d":4,"e":"5"}],是用dumps转化而来 pythondata=json.loads(jsondata)
print pythondata,type(pythondata) #结果是:[{u'a': 1, u'c': 3, u'b': 2, u'e': u'5', u'd': 4}] <type 'list'>
json转python数据类型:
4,实例
- json.dumps()函数是将一个Python数据类变成json格式的编码
- json.loads()函数是将json格式数据转换为想要的python格式
import json
def store(data):
with open('data.json', 'w') as fw:
#将字典转化为字符串
json_str = json.dumps(data) #python变成json
fw.write(json_str) #写到文件中
#上面两句等同于下面这句
# json.dump(data,fw) #区分dump和dumps def load():
with open('data.json','r') as f: #文件源
data = json.load(f) #json变成python
return data if __name__ == "__main__":
json_data = '{"login":[{"username":"aa","password":"001"},{"username":"bb","password":"002"}],"register":[{"username":"cc","password":"003"},{"username":"dd","password":"004"}]}'
# 函数是将json格式数据转换为字典
data = json.loads(json_data)
store(data) #调用第一个函数,把python编程变成json data = load() #调用第二函数:把刚刚成了的json的再变回python
print(data)
python编程 之 json包的更多相关文章
- 解析Python编程中的包结构
解析Python编程中的包结构 假设你想设计一个模块集(也就是一个"包")来统一处理声音文件和声音数据.通常由它们的扩展有不同的声音格式,例如:WAV,AIFF,AU),所以你可能 ...
- Python编程-模块和包
一.模块 1.什么是模块? 一个模块就是一个包含了python定义和声明的文件,文件名就是模块名字加上.py的后缀. 2.为何要使用模块? 如果你退出python解释器然后重新进入,那么你之前定义的函 ...
- python编程 之 PyMysql包接口,python中如何使用数据库
1,环境介绍 要求:使用数据库TESTDB.EMPLOYMENT EMPLOYEE表字段为 FIRST_NAME, LAST_NAME, AGE, SEX 和 INCOME. 2,基本用法: impo ...
- python/socket编程之粘包
python/socket编程之粘包 粘包 只有TCP有粘包现象,UDP永远不会粘包. 首先需要掌握一个socket收发消息的原理 发送端可以是1k,1k的发送数据而接受端的应用程序可以2k,2k的提 ...
- Python 编程快速上手 第十四章 处理 CSV 文件和 JSON 数据
前言 这一章分为两个部分,处理 CSV 格式的数据和处理 JSON 格式个数据. 处理 CSV 理解 csv csv 的每一行代表了电子表格中的每一行,每个逗号分开两个单元格csv 的内容全部为文本, ...
- Python之路 - 网络编程之粘包
Python之路 - 网络编程之粘包 粘包
- 书籍推荐Python编程:从入门到实践(高清完整pdf)
这本书我看了电子版的,感觉还不错,全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 -- 游戏.数据可视化和 Web 应用程序,同时掌握让你终身受益 ...
- Python编程:从入门到项目实践高清版附PDF百度网盘免费下载|Python入门编程免费领取
百度网盘:Python编程:从入门到项目实践高清版附PDF免费下载 提取码:oh2g 第一部分 基础知识第1章 起步 21.1 搭建编程环境 21.1.1 Python 2和Python 3 21 ...
- python入门神书!|python编程从入门到实践|内附网盘链接带提取码|
点击此处进入网盘下载地址 提取码:o39n 全书共有20章,书中的简介如下: 本书旨在让你尽快学会 Python ,以便能够编写能正确运行的程序 —— 游戏.数据可视化和 Web 应用程序,同时掌握让 ...
随机推荐
- java和c#值类型和引用类型
java数据类型分为基本数据类型和引用类型 基本数据类型:int float double bool char byte 引用数据类型:string array class interfa ...
- Luogu P4768 [NOI2018]归程
题目链接 \(Click\) \(Here\) \(Kruskal\)重构树的好题.想到的话就很好写,想不到乱搞的难度反而相当高. 按照点的水位,建出来满足小根队性质的\(Kruskal\)重构树,这 ...
- (set)MG loves gold hdu6019
MG loves gold Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) ...
- 异常处理和Throwable中的几个方法
package cn.lijun.demo; /* * try { //需要被检测的语句. } catch(异常类 变量) { //参数. //异常的处理语句. } finally { //一定会被执 ...
- 浏览器console打印定义样式
%指令 c:表示样式(css) 其他的大家查资料吧 console.log("%c dsajfklsdjljfdskl", "color:red;font-size:50 ...
- qml: C++调用qml函数
C++调用qml函数,是通过下面的函数实现的: bool QMetaObject::invokeMethod(QObject *obj, const char *member, Qt::Connect ...
- Java基础之随机生成数字和字母
字母与数字的ASCII码 目 前计算机中用得最广泛的 字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码(American Standard Code for Information I ...
- python css功能补充讲解
###########总结#### 标签选择器 标签名 id选择器 #box1 类选择器.box2 css高级选择器 *子选择器* 子选择器用 大于号 .box1>.box2{ w ...
- 完美解决distinct中使用多个字段的方法
众所周知,distinct可以列出不重复的记录,对于单个字段来说distinct使用比较简单,但是对于多个字段来说,distinct使用起来会使人发狂.而且貌似也没有见到微软对distinct使用多字 ...
- lasticsearch最佳实践之分片使用优化
一.遇到的问题 与大多数分布式系统一样,Elasticsearch按照一定的Hash规则把用户数据切分成多个分片,然后打散到不同机器进行存储,从而实现大规模数据的分布式存储. cluster.png ...