模块讲解----json模块(跨平台的序列化与反序列化)

一、json的特点

1、只能处理简单的可序列化的对象;(字典,列表,元祖)

2、json支持不同语言之间的数据交互;(python  -  go,python - java)

二、使用场景

1、玩游戏的时候存档和读取记录。

2、虚拟机挂起、保存或者恢复、读档的时候。

三、语法:

1、简单的数据类型:

 1 1、在内存中进行转换:
 2 import json
 3 #py基本数据类型转换字符串:
 4 r = json.dumps([11,22,33])
 5 #li = ‘["alex","eric"]‘
 6 li = "[‘alex‘,‘eric‘]"
 7 re = json.loads(li)   #反序列化的时候,一定要使用双引号""。
 8 print(re,type(re))
 9
10
11 2、在文件中转换:(在dumps和loads基础上增加了个写读文件)
12 import json
13
14 文件格式的序列化:
15 li = [11,22,33]
16 json.dump(li,open(‘db‘,‘w‘))
17
18
19 文件格式的反序列化:
20 li = json.load(open(‘db‘,‘r‘))
21 print(li,type(li))

2、复杂的数据类型:

序列化:

 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 # Author:Dong Ye
 4
 5 import json
 6
 7
 8 test = r‘test.txt‘
 9
10 info  = {
11     ‘name‘ : ‘alex‘,
12     ‘age‘ : 32
13
14 }
15
16 with open(test,‘w‘,encoding=‘utf-8‘) as f:
17     f.write( json.dumps(info) )

反序列化:

 1 #!/usr/bin/env python
 2 # -*- coding:utf8 -*-
 3 # Author:Dong Ye
 4
 5 import  json
 6
 7 test = r‘test.txt‘
 8
 9 with open(test,‘r‘,encoding=‘utf-8‘) as f:
10     data = json.loads( f.read() )
11     print(data)
12     print(data[‘name‘])
13     print(data[‘age‘])

使用场景

调用其他平台的接口时,一般都会返回一个字符串,eg:“字典,列表,url路径等”。

1 import requests
2 import json
3
4 response = requests.get("http://http://wthrcdn.etouch.cn/weather_mini?ciyp=北京")
5 response.encoding = ‘utf-8‘
6
7 dic = json.loads(requests.text)
8 print(response,type(response))
时间: 2024-08-03 16:42:43

模块讲解----json模块(跨平台的序列化与反序列化)的相关文章

Python 入门之 内置模块 -- 序列化模块(json模块、pickle模块)

Python 入门之 内置模块 -- 序列化模块(json模块.pickle模块) 1.序列化 Python中这种序列化模块有三种: ? json模块 : ? 不同语言都遵循的一种数据转化格式,即不同语言都使用的特殊字符串.(比如Python的一个列表[1, 2, 3]利用json转化成特殊的字符串,然后在编码成bytes发送给php的开发者,php的开发者就可以解码成特殊的字符串,然后在反解成原数组(列表): [1, 2, 3]) ? json序列化只支持部分Python数据结构:dict,l

Newtonsoft.Json.4.5.0 序列化与反序列化json字符串使用方法总结

在VS里下载安装: Json.NET 5.0.6 http://www.nuget.org/packages/Newtonsoft.Json/5.0.6 反序列化json字符串为List: json字符串如下: 1 {"docs": [{ 2 "uid": 2629577, 3 "nickname": "枕边疯电台", 4 "is_v": "true", 5 "category

pickle模块和json模块

不要把文件命名为模块名 #pickle模块 序列化 import pickle dic = {'name':'dodo','age':18} print(pickle.dumps(dic))#转成了bytes类型 with open('a.pickle','wb')as f:#存 f.write(pickle.dumps(dic)) #简单方法 pickle.dump(dic,open('b.pickle','wb')) 反序列化 with open('a.pickle','rb')as f:#

第三十五篇 os模块、sys模块、json模块、pickle模块

目录 一.os模块 二.sys模块 三.json模块 dump和load 四.pickle模块 一.os模块 os模块和操作系统交互,主要用于文件操作 import os # test.py文件中 # os.mkdir() 一个路径参数和一个字符串参数.如果有路径参数,则在该路径下创建一个新的文件夹:如果无路径参数,则在当前文件的同级路径下创建一个新的文件夹 os.mkdir('king') # 创建了和test.py文件同级目录下的名为king的文件夹 # os.removedirs() 一个

Python基础第十三天——sys模块、logging模块、json模块、pickle模块

一.sys模块 1.定义: 与python解释器交互的一个模块 2.sys模块常用的方法 (1)sys.argv方法 定义:命令行参数list,第一个元素是程序本身路径 例: import sys print(sys.argv) # sys.argv只是反映当前模块名,用一个列表存着 # 而pycharm软件则给我们自动加上了绝对路径 输出结果:          # 这个结果并不正确,是因为这是pycharm给加上去的 ['C:/Users/William/PycharmProjects/Py

python 标准模块之json 模块

模块作用 json 通常用于在web 客户端和服务器数据交换,即把字符串类型转换成python 基本数据类型 ,或者将python 基本数据类型转换成字符串类型 常用的方法 json.dumps(obj) # 将python 的基本数据类型转换成字符串 json.loads(obj) # 将字符串序列化成python 的基本数据类型 json.dump(obj) # 将python 的基本数据类型转换成字符串并写入到文件当中 json.load(obj) # 读取文件中的字符串,序列化成pyth

练手小程序用了pandas模块和json模块以及time模块

6.16自我总结 功能介绍 程序功能介绍: 商品信息再读取修改买卖均已xlsx格式 且生成购物记录也按/用户名/购买时间.xlsx格式生成 账号密码输入错误三次按照时间进行冻结 用户信息已json格式保存 程序写的过程 先生成功能模块和运行模块 再写功能模块中用到的固定的文件目录全放在setting.py文件中 与商品交互全放在shop.py中 与用户交互全放在user.py中 一些返回界面延迟动画全放在辅助模块中 1.程序设计目录 2.run.py from core.src import r

模块讲解---time模块,datetime模块,random模块,hashlib模块和hmac模块,typing模块,requests模块,re模块

目录 1. 包 2. time模块 ??1. 优先掌握 2. 了解 3. datetime模块 ??1. 优先掌握 4. random模块 ??1. 优先掌握 ??2. 了解 5. hashlib模块和hmac模块 6. typing模块 7. requests模块 8. re模块 ??1. re模块的正则表达式的元字符和语法 ??2. 贪婪模式和非贪婪模式 ??3. 匹配邮箱实例 ??4. re模块中的常用功能函数 ??5. 修饰符 re.S ??6. 补充 目录 \1. 包 1. 优先掌握

python 之序列化(pickle模块和json模块)

#!/usr/bin/env python # -*- coding: utf-8 -*- ''' 序列化(pickle)和json 1.什么是序列化? 序列化可以把一个对象(比如列表.字典都是对象),通过python特有的机制序列化一下. 也就是当作是以二进制的形式给它加密一下(特殊二进制的方式加密一下),这个过程就是序列化 并且对一个对象序列化(比如类.列表.字典)之后,可以进行反序列化. ''' import pickle,json li = ['tantianran',11,22,'ok