python note 18 序列化模块

1、json模块

# json 在所有的语言之间都通用 : json序列化的数据 在python上序列化了 那在java中也可以反序列化
# 能够处理的数据类型是非常有限的 : 字符串 列表 字典 数字
# 字典中的key只能是字符串

import json
ret = json.dumps(dic)  # 序列化
print(dic,type(dic))
print(ret,type(ret))

res = json.loads(ret) # 反序列化
print(res,type(res))

# 向文件中记录字典

import json
dic = {‘key‘ : ‘value‘,‘key2‘ : ‘value2‘}
ret = json.dumps(dic)  # 序列化
with open(‘json_file‘,‘a‘) as f:
    f.write(ret)

# 从文件中读取字典

with open(‘json_file‘,‘r‘) as f:
    str_dic = f.read()
dic = json.loads(str_dic)
print(dic.keys())

# dump load 是直接操作文件的

dic = {‘key1‘ : ‘value1‘,‘key2‘ : ‘value2‘}
with open(‘json_file‘,‘a‘) as f:
    json.dump(dic,f)

#load

with open(‘json_file‘,‘r‘) as f:
    dic = json.load(f)
print(dic.keys())

# dumps loads
  # 在内存中做数据转换 :
    # dumps 数据类型 转成 字符串 序列化
    # loads 字符串 转成 数据类型 反序列化
# dump load
  # 直接将数据类型写入文件,直接从文件中读出数据类型
    # dump 数据类型 写入 文件 序列化
    # load 文件 读出 数据类型 反序列化
# json是所有语言都通用的一种序列化格式
  # 只支持 列表 字典 字符串 数字
  # 字典的key必须是字符串

原文地址:https://www.cnblogs.com/P-Z-W/p/10805140.html

时间: 2024-08-01 07:30:34

python note 18 序列化模块的相关文章

python 学习二十五天(python内置模块之序列化模块)

今日主要内容 1.python内置模块-序列化模块 python中的序列化模块 json 所有的编程语言都通用的序列化格式....它支持的数据类型非常有限 数字 字符串 列表 字典 pickle 只能在python语言的程序之间传递数据用的..pickle支持python中所有的数据类型 shelve python3.* 之后才有的 2.摘要模块---hashlib 3.一道经典面试题 第一.python内置模块---序列化 ***所有的导入模块都需要把import放在文件首位 什么叫序列化 能

Python内置模块之序列化模块

序列化模块 json dumps loads dump load pickle dumps loads dump load shelve json 1: dumps/loads import json # 导入json模块 dic = {'name':'wangys','age':18,'sex':'male'} # 定义一个字典 str_dir = json.dumps(dic) # 将字典序列化 print(str_dir,type(str_dir)) new_dic = json.load

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

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

铁乐学python_day25_序列化模块

部份内容摘自博客http://www.cnblogs.com/Eva-J/ 回顾内置方法: __len__ len(obj)的结果依赖于obj.__len__()的结果,计算对象的长度 __hash__ hash(obj)的结果依赖于obj.__hash__()的结果,计算对象的hash值 __eq__ obj1 == obj2 的结果依赖于obj.__eq__()的结果,用来判断值相等 __str__ str(obj) print(obj) '%s'%obj 的结果依赖于__str__,用来做

内置模块(一)——序列化模块:json、pickle、shelve

一.序列化模块 1.什么是序列化呢? 序列化的本质就是:将一种数据结构(如字典.列表)等转换成一个特殊的序列(字符串或者bytes)的过程就叫做序列化. 特别注意:特殊的序列,而不是我们常用的str这种字符串. 2.序列化的作用 如果你写入文件中的字符串是一个序列化后的特殊的字符串,那么当你从文件中读取出来,是可以转化回原数据结构的. 3.小小总结: 序列化模块就是:将一个常见的数据结构转化成一个特殊的序列,并且这个特殊的序列还可以反解回去.它的主要用途:文件读写数据,网络传输数据. 二.pyt

python开发模块基础:序列化模块json,pickle,shelve

一,为什么要序列化 # 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化'''比如,我们在python代码中计算的一个数据需要给另外一段程序使用,那我们怎么给?现在我们能想到的方法就是存在文件里,然后另一个python程序再从文件里读出来.但是我们都知道,对于文件来说是没有字典这个概念的,所以我们只能将数据转换成字典放到文件中.你一定会问,将字典转换成一个字符串很简单,就是str(dic)就可以办到了,为什么我们还要学习序列化模块呢?没错序列化的过程就是从dic 变成str(dic)的

python常用模块(模块和包的解释,time模块,sys模块,random模块,os模块,json和pickle序列化模块)

1.1模块 什么是模块: 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,在python中.一个.py文件就称为一个模块(Module) 使用模块的好处: 提高了代码的可维护性. 其次,编写代码不必从零开始.当一个模块编写完毕,就可以被其他地方引用.我们编写程序的时候也经常引用其他模块,包括python的内置的模块和第三方模块. 包(package

Python模块-logging、序列化模块、re模块

MarkdownPad Document logging模块 import logging   logging.debug('debug message')   logging.info('info message')   logging.warning('warning message')   logging.error('error message')   logging.critical('critical message') 运行结果: C:\Python36\python.exe C:

python模块之sys模块和序列化模块

sys模块 sys模块是与python解释器交互的一个接口 sys.argv 命令行参数List,第一个元素是程序本身路径 sys.exit(n) 退出程序,正常退出时exit(0),错误退出sys.exit(1) sys.version 获取Python解释程序的版本信息 sys.path 返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值 sys.platform 返回操作系统平台名称 序列化模块 序列化的目的: 以某种存储形式使自定义对象持久化 将对象从一个地方传递到另一个地