Python模块(json)
json
json模块,用来处理json风格的数据
一、json的数据格式
json是javascripts的标准格式,json的格式是由若干个 键/值(key,values) 对的集合,该集合可以理解为字典里面可以嵌套键值对
values 可以是string、int等类型,也可以是数组,数组用 [] 表示,等同于python的列表
可以用在python中处理字典的数据类型
一个jison风格的数据:
var testJson = {
"Name" : "奥巴马" ,
"ByName" : ["小奥","小巴","小马"], #表示一个数组,可以理解成python中的list
"Education" : {
"GradeSchool" : "华盛顿第一小学",
"MiddleSchool" : ["华盛顿第一初中" , "华盛顿第一高中"],
"University" : {
"Name" : "哈佛大学",
"Specialty" : ["软件工程","会计"]
}
}
}
二、json序列化
如果我们要在不同的编程语言之间传递对象,就必须把对象序列化为标准格式,比如XML,但更好的方法是序列化为JSON,因为JSON表示出来就是一个字符串,可以被所有语言读取,也可以方便地存储到磁盘或者通过网络传输。JSON不仅是标准格式,并且比XML更快,而且可以直接在Web页面中读取,非常方便。 JSON表示的对象就是标准的JavaScript语言的对象,JSON和Python内置的数据类型对应如下:
****在不同的语言中传递或共享对象,就必须把对象序列化成为标准格式,做好序列化成json的格式,不仅快而且表示出来就是一个字符串
####json序列化的使用
与pickle一样,同样支持dump(s)与load(s)
****定义两个对象,string和dict
>>> dict2
{'job': 'it', 'age': 20, 'name': 'weimin'}
>>> string
'string'
****dumps将dict2序列化
>>> json.dumps(dict2)
'{"job": "it", "age": 20, "name": "weimin"}'
****loads将dict2反序列化
>>> json.loads('{"job": "it", "age": 20, "name": "weimin"}')
{u'job': u'it', u'age': 20, u'name': u'weimin'} #注意是unicode
****将dict对象序列化到文件中
>>> dict2
{'job': 'it', 'age': 20, 'name': 'weimin'}
>>>
>>> f = open('/var/tmp/json.json','w')
>>> json.dump(dict2,f)
>>> del dict2
****将dict从文件中反序列化到内存
>>> f = open('/var/tmp/json.json')
>>> dict2 = json.load(f)
>>> dict2
{u'job': u'it', u'age': 20, u'name': u'weimin'} #注意返回的是unicode
Python模块(json)的更多相关文章
- Python模块——json
简介 json全名是JavaScript Object Notation(即:Javascript对象标记).它是JavaScript的子集,JSON是轻量级的文本数据交换格式.前端和后端进行数据交互 ...
- 潭州课堂25班:Ph201805201 python 模块json,os 第六课 (课堂笔记)
json 模块 import json data = { 'name':'aa', 'age':18, 'lis':[1,3,4], 'tupe':(4,5,6), 'None':None } j = ...
- python模块-json、pickle、shelve
json模块 用于文件处理时其他数据类型与js字符串之间转换.在将其他数据类型转换为js字符串时(dump方法),首先将前者内部所有的单引号变为双引号,再整体加上引号(单或双)转换为js字符串:再使用 ...
- python模块--json \ pickle \ shelve \ XML模块
一.json模块 之前学习过的eval内置方法可以将一个字符串转成一个python对象,不过eval方法时有局限性的,对于普通的数据类型,json.loads和eval都能用,但遇到特殊类型的时候,e ...
- day19 python模块 json模块 pickle模块
day19 python 一.序列化模块 序列类型: 列表 字符串 元组 bytes 序列化: 特指字符串和bytes, 就是把其他的数据类型转化成序列的数据类型的过程 dic = ...
- python 模块-json
1.JSON(Javascript Object Notation) 是一种轻量级的数据交换格式.易于人阅读和编写.同时也易于机器解析和生成.它基于JavaScript Programming Lan ...
- python 模块之-json
python 模块json import json x="[null,true,false,1]" print(json.loads(x)) #---------------- ...
- python模块(json和pickle模块)
json和pickle模块,两个都是用于序列化的模块 • json模块,用于字符串与python数据类型之间的转换 • pickle模块,用于python特有类型与python数据类型之间的转换 两个 ...
- python模块time&datetime&json & picle&14.logging等
本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...
随机推荐
- 用Editplus开发Java
☆ 准备工作 ①,已安装好jdk,同时配置系统变量(3个,JAVA_HOME,PATH,CLASSPATH) ②,电脑已安装Editplus,并做好设置. ☆ Editplus配置java开发环境 对 ...
- Sql Server 常用方法、存储过程备用
常用方法 --字符串转换成数字 --CAST("1" AS int) --CONVERT(int,"1") --截取字符串 SUBSTRING(OccurreA ...
- CSS权威指南 - 浮动和定位 1
定位 定位的想法很简单元素框相对于正常位置出现在哪里. 定位:static,相对, 绝对, fixed, 继承 static就是默认的位置 相对就是相对于默认位置的偏移.原来的static定位位置依然 ...
- hlg 2130 状压dp
基本的状压dp 需要注意的是两点之间直线最短 所以不需要进行floyd 由于把dp的memset放在了初始化0的后面de了好久的bug.. #include<stdio.h> #inclu ...
- 2016.04.27,英语,《Vocabulary Builder》Unit 19
bio, comes from the Greek word for 'life'. biosphere ['baɪoʊsfɪr] n. 生物圈: biology [baɪ'ɑːlədʒi] n. 生 ...
- DS实验题 order
算法与数据结构 实验题 6.4 order ★实验任务 给出一棵二叉树的中序遍历和每个节点的父节点,求这棵二叉树的先序和后序遍历. ★数据输入 输入第一行为一个正整数n表示二叉树的节点数目,节点编号从 ...
- 基于LR的HTTP协议接口性能测试脚本实例
背景介绍 XXX项目性能测试中新增业务场景:XX设备的在线激活,因为存在多用户同时在线激活,故需进行性能测试以确认后台服务器系统在多用并发时功能是否正常,性能指标是否满足规格要求.用户使用场景为用户通 ...
- What is Heterogeneous Computing?
http://developer.amd.com/resources/heterogeneous-computing/what-is-heterogeneous-computing/ Heteroge ...
- 【No.4 Ionic】修改 cordova 插件
在使用 cordova 过程 使用的插件 有可能不能满足个人需求,就需要修改,下面就直接说说步骤 插件结构 我用 cordova-plugin-inappbrowser 插件 讲解 在目录中有个 sr ...
- [收藏]Asp.net MVC生命周期
一个HTTP请求从IIS移交到Asp.net运行时,Asp.net MVC是在什么时机获得了控制权并对请求进行处理呢?处理过程又是怎样的? 以IIS7中asp.net应用程序生命周期为例,下图是来自M ...