python之json用法

五:python数列化和反序列化

python的对象编码转换为json格式的字符串,反序列化可以理解为:把json格式

字符串解码为python数据对象。在python的标准库中,专门提供了json

导入,查看json库的主要方法

import  json
print(json.__all__)

见json库的主要方法:

['dump', 'dumps', 'load', 'loads', 'JSONDecoder', 'JSONEncoder']

json.dumps():把原python字典类型转化成josn字符串

 

定义一个字典,通过json把它序列化为json格式的字符串,见实现的代码

复制代码
import  json

dict1={'name':'leizi','age':24,'address':'北京'}

print (u'未序列化前的数据类型为:',type(dict1))
print (u'未序列化前的数据:',dict1)
#对dict1进行序列化的处理
str1=json.dumps(dict1)
print (u'序列化后的数据类型为:',type(str1))
print (u'序列化后的数据为:',str1)
复制代码

结果

未序列化前的数据类型为: <class 'dict'>
未序列化前的数据: {'age': 24, 'name': 'leizi', 'address': '北京'}
序列化后的数据类型为: <class 'str'>
序列化后的数据为: {"age": 24, "name": "leizi", "address": "\u5317\u4eac"}

json.loads():把原json字符串转化成python字典类型

我们再反序列化,把json格式的字符串解码为python的数据对象,见实现的代码和输出:

复制代码
import  json

dict1={'name':'雷子','age':24,'address':'北京'}

print (u'未序列化前的数据类型为:',type(dict1))
print (u'未序列化前的数据:',dict1)
#对dict1进行序列化的处理
str1=json.dumps(dict1)
print (u'序列化后的数据类型为:',type(str1))
print (u'序列化后的数据为:',str1)
#对str1进行反序列化
dict2=json.loads(str1)
print (u'反序列化后的数据类型:',type(dict2))
print (u'反序列化后的数据:',dict2)
复制代码

输出:

未序列化前的数据类型为: <class 'dict'>

未序列化前的数据: {'age': 24, 'name': '雷子', 'address': '北京'}

序列化后的数据类型为: <class 'str'>

序列化后的数据为: {"age": 24, "name": "\u96f7\u5b50", "address": "\u5317\u4eac"}

反序列化后的数据类型: <class 'dict'>

反序列化后的数据: {'age': 24, 'name': '雷子', 'address': '北京'}

结合requests库,来看返回的json数据,具体代码为:

复制代码
import  json,requests

r=requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京')

print (r.text,u'数据类型:',type(r.text))
#对数据进行反序列化的操作
dic=json.loads(r.text)
print (dic,u'数据类型:',type(dic))

转载于:https://www.cnblogs.com/cmlaiweno/p/6707049.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值