序列化,指的是把内存中的变量(如类的实例)变成可存储或可传输的过程。

JSON(JavaScript Object Notation, JavaScript对象表示)是网络传输中经常使用的一种数据形式。

在Python中,经常将字典转化成JSON来发送,使用的主要方法为dumps:

import json

data = {'name':'nick',
'age':12}
data_json = json.dumps(data)

注意以下几点:

1.data_json为转换后的JavaScript对象,在JavaScript对象里,key值默认为字符串格式

2.data_json中的key的顺序与data中的顺序不保证相同

3.data还可以是str,list,tuple,int等其他类型,这时也会对data进行相应的转化

4.data_json的数据类型为str

将JSON格式的数据转化为Python中的dict时,应使用loads:

data = json.loads(data_json)

这时,data中所有的字符串默认均为unicode,因为JSON标准规定的编码为UTF-8

注意:对于文件的JSON处理,应使用dump,load

要想JSON化类的实例,应在dumps中指定可选参数default,如:

def func(obj):

def foo(obj):
return {'name':obj.name,
'age':obj.age}

此后使用 data_json = json.dumps(s, default = foo) 即可序列化类的实例s

更简便的方法是:

json.dumps(s, default = lambda x: x.__dict__)

要得到JSON反序列化的类的实例,可使用loads的object_hook参数:

def bar(obj):
return Person(obj['name'], d['age'])

c = json.loads(data_json, object_hook = bar)

此时得到的c为Person类的一个实例

  

最新文章

  1. 安卓 service
  2. js 的Location对象
  3. SQL基础之基本操作
  4. C#根据网址生成静态页面
  5. C#扩展特性
  6. [MSSQL2012]First_Value函数
  7. 人工蜂群算法-python实现
  8. yii 获取当前ip 常用的调用变量
  9. angular.js学习手册(二)
  10. linux 下 apache启动、停止、重启命令
  11. [补档][Poi2010]Monotonicity 2
  12. Jmeter + Ant 测试环境搭建 及解决问题: the <jmeter> type doesn't support nested text data
  13. html网页引用中文字体,解决加载缓慢办法
  14. DWM1000 三基站一标签定位HEX
  15. SAI窗口无法移动
  16. Centos7 下的SVN安装与配置
  17. C#读取Cookie
  18. 【HTML笔记】--- 内联元素间距问题及解决方案
  19. HTML5 Base64_encoding_and_decoding
  20. 【github】添加 ssh 秘钥

热门文章

  1. MPEG2_TS流基本概念和数据结构
  2. 一款PHP环境整合工具—VertrigoServ介绍
  3. Windows平台 python 常用包的安装
  4. 我们web前端常用的一些Array对象及应用
  5. jquery实例权威指南
  6. $PkuWc\ 2018$ 酱油记
  7. [luogu3412]仓鼠找sugar II
  8. [SDOI2013]费用流
  9. NancyFX 第九章 Responses(响应对象)
  10. C++学习-5