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 应用程序,同时掌握让 ...
随机推荐
- 如何把dedecms数据生成json
最近搞dede搞得头大,长话短说! 名称:json数据调用 功能:调用某个远程连接的json接口,方便同远程站点之间进行通信来调取内容 语法: {dede:json url='http://news/ ...
- hystrix项目实战
闲话少说: 总共分6步: (1)添加hystrix依赖以及监控的依赖 <dependency> <groupId>org.springframework.cloud</g ...
- getchar(),scanf(),gets(),cin,输入字符串
#include<iostream>#include<stdio.h>#include<string.h>#include<string>using n ...
- (LIS) P1091 合唱队形 洛谷
题目描述 NN位同学站成一排,音乐老师要请其中的(N-KN−K)位同学出列,使得剩下的KK位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,…,K1,2,…,K,他 ...
- (线性dp,最大连续和)Max Sequence
Max Sequence Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 18511 Accepted: 7743 Des ...
- Centos 6.8编译安装LNMP环境
Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 ...
- social-auth-app-django集成第三方登录
GitHub:https://github.com/python-social-auth/social-app-django 官网文档:http://python-social-auth.readth ...
- 16.Linux-LCD驱动(详解)
在上一节LCD层次分析中,得出写个LCD驱动入口函数,需要以下4步: 1) 分配一个fb_info结构体: framebuffer_alloc(); 2) 设置fb_info 3) 设置硬件相关的操作 ...
- java 中数据的强制转换 和计算的补码运算
原码 反码 补码的定义与运算 1原码: 原码是将十进制或者其他进制的数转换为二进制表示(且要根据数据的类型转换) 如:130 (默认是Int类型,则是4个字节) 原码是:00000000 000000 ...
- JAVA核心技术I---JAVA基础知识(单例模式和final关键字)
一:单例模式 C++设计模式中提及,不再赘述设计模式---对象性能模式之单例模式(Singleton) public class single{ static single Instance=new ...