Python之序列化和反序列化

一、序列化与反序列化的定义

序列化:把python的数据类型转换成json格式的字符串类型。

反序列化:把json格式的字符类型串转换成python的数据类型。

二、作用

为了数据传输,在接口测试发送请求时使用的是json格式的字符串,需要进行序列化,

在实际的接口返回数据中,有各种类型,需要进行反序列化为python的数据类型,然后使用。

三、python中的json模块

在python中,可以使用json模块中的方法进行序列化和反序列化操作。

import json
‘‘‘字典的序列化与反序列化‘‘‘
dict1 = {‘name‘: ‘jaffe‘, ‘age‘: 18, ‘other‘: {‘city‘: ‘chongqing‘, ‘doing‘: ‘coding‘}}
# 将字典转换为json格式的字符串,序列化
dict2_str = json.dumps(dict1)
print(dict2_str, type(dict2_str))
# 将json格式的字符串转换为字典,反序列化
dict3 = json.loads(dict2_str)
print(dict3, type(dict3))

#结果:{"name": "jaffe", "age": 18, "other": {"city": "chongqing", "doing": "coding"}} <class ‘str‘>
#结果:{‘name‘: ‘jaffe‘, ‘age‘: 18, ‘other‘: {‘city‘: ‘chongqing‘, ‘doing‘: ‘coding‘}} <class ‘dict‘>
import json
import requests
import xmltodict

r = requests.post(url=‘https://www.fxiaoke.com/FHH/EM0HUL/Authorize/PersonalCloudLogin?_fs_token=‘,
                  headers={‘Content-type‘: ‘application/json‘,
                           ‘referer‘: ‘https://www.fxiaoke.com/pc-login/build/login.html‘,
                           ‘user-agent‘: ‘Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36‘,
                           ‘origin‘: ‘https://www.fxiaoke.com‘},
                  json={‘phoneNumber‘: "18883928751",
                        ‘internationalAreaCode‘: "+86",
                        ‘rsaPassword‘: "STnWygTPdW2CaTWNzlBQrM/GK0tLrbZWfUa/Li4jmOCMZFZQvHgqvY/zecu/5uZnykgU512Tm50MAN3DEJ8/K7gL5AzZqdl/Z5jGxgYnu9HlWb8ti1C4FbMyQpgCvFYQXpG/Iod/jr2NHGAmjP64IenCnaUZ0AROo5tXOpdhcZc=",
                        ‘persistenceHint‘: ‘true‘,
                        ‘publicKey‘: "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCROXqyCKxG8DrQKvrmdwiAHFJseaLHKsdzJ+61EpEGUawyLk5obn2Z2lyVVGjqT3KECk3DJtAD6Jux/m/gW2/lxspvhUO1YE1P8OZuUq5xhr/3AWuSSXCqLM2q6TEMnI2VE1BzlsRcxQVGVd4kGszzpyLXYS9ubFTTp1C2A+uZ1QIDAQAB"}
                  )
print(r.status_code)
# xml反序列化,先转换成json格式的字符串,再转换成字典
result = json.loads(json.dumps(xmltodict.parse(r.text)))
print(result, type(result))

# 结果:{‘FHE‘: {‘Error‘: {‘@Code‘: ‘s311010023‘, ‘@Message‘: ‘需要图形验证码‘}, ‘Result‘: {‘@Status‘: ‘6‘}}} <class ‘dict‘>

原文地址:https://www.cnblogs.com/lengjf/p/12663811.html

时间: 2024-11-09 17:12:13

Python之序列化和反序列化的相关文章

python的序列化和反序列化

python 的序列化和反序列化用于内存之间的共享,包括服务器和客户端的共享,两个Python程序之间的共享,以及以字符串的形式存储到硬盘中. pyhton 的pickle 可以对Python的各种数据类型进行操作,包括类.pickle中只适用于Python 1 #Python的序列化和反序列化 2 import pickle 3 4 li = ['xiaoli','xiaowang','12','3','4'] 5 dumped = pickle.dumps(li) #将列表进行了序列化 6

Python Json序列化与反序列化

在python中,序列化可以理解为:把python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式字符串解码为python数据对象.在python的标准库中,专门提供了json库与pickle库来处理这部分. json的dumps方法和loads方法,可实现数据的序列化和反序列化.具体来说,dumps方法,可将json格式数据序列为Python的相关的数据类型:loads方法则是相反,把python数据类型转换为json相应的数据类型格式要求.在序列化时,中文汉字总是被转

python的序列化与反序列化(例子:dict保存成文件,文件读取成dict)

dict保存成文件(对象序列化) d = dict(name='TSQ', age=18) import pickle with open("dict.file", "wb") as f: pickle.dump(d, f) 文件读取成dict(文件反序列化) d = {} import pickle with open("dict.file", "rb") as f: d = pickle.load(f) print(d)

python的序列化与反序列化

------------------------------------------------------------------- 原文地址:https://www.cnblogs.com/peiminer/p/9144395.html

Python Special Syntax 8: 序列化与反序列化--&gt;华丽丽的叫 pickle(泡菜?!)

直接上代码吧 #-*-coding:utf-8 import os if os.path.exists('d:\\cpickle.data'): os.remove('d:\\cpickle.data') import cPickle as P shoplist=['apple','banana','pear'] P.dump(shoplist,file('d:\\cpickle.data','w')) f=file('d:\\cpickle.data') while True: content

Python 中数据的序列化和反序列化(json处理)

概念: JSON(JavaScript Object Notation):是一种轻量级的数据交换格式. 易于人阅读和编写.同时也易于机器解析和生成. 它基于JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999的一个子集. JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等). 这些

python json 序列化反序列化 和 中文编码问题

在一个项目中,需要从云端获取一个json格式的数据,并保存到本地文件中,然后再读取出来,这中间要用到json的dumps方法和loads方法,以实现数据的序列化和反序列化.具体来说,dumps方法,可将json格式数据序列为python的相关的数据类型,通常用于打印等:loads方法则是相反,把python数据类型转换为json相应的数据类型格式要求,反序列化后可以对json数据进行各种操作.在编程过程还发现一个问题,在序列化时,中文汉字总是被转换为unicode码,在网上搜索后发现,在dump

python学习day4之路文件的序列化和反序列化

json和pickle序列化和反序列化 json是用来实现不同程序之间的文件交互,由于不同程序之间需要进行文件信息交互,由于用python写的代码可能要与其他语言写的代码进行数据传输,json支持所有程序之间的交互,json将取代XML,由于XML格式稍微比较复杂.现在程序之间的交互都是用json来进行文件信息的交互. 在使用json序列化和反序列化的时候,dump一次,就要load一次,不能操作. json序列化的过程,就是写入文件中,让另外一个编程语言进行调用: import json in

Python学习心得(五) random生成验证码、MD5加密、pickle与json的序列化和反序列化

# -*- coding:utf-8 -*- import random as rd #验证码 import hashlib as hsl #MD5加密 import pickle,json #pickle与json序列化 #print rd.randint(1,5) #print help(range) #print help(rd.randint) #随机生成6位验证码: code = [] for i in range(1,7): if i == rd.randint(1,6): code