json 序列化dump,dumps 反序列化load,loads

json是一种特殊的字符串,它是用列表/字典的语法写成的

a = '1,2,3,4'

# 这是字符串

b = [1,2,3,4]

# 这是列表

c = '[1,2,3,4]'

# 这是字符串,但它是用json格式写的字符串

dumps  将字典数据转换成json字符串

import json 
dict1 = {
    'Code': 200,
    'Count': 657,
    'Posts': [
        {
          'Id': 0,
          'PostId': "1123178321664806912",
          'RecruitPostId': 49691
        },
        {
          'Id': 0,
          'PostId': "1123178321664806912",
          'RecruitPostId': 49691  
        }
      ]
        }
print(type(dict1)) 

#字典数据转换成json字符串 
json_dic = json.dumps(dict1) 
print(json_dic)
print(type(json_dic))

#<class 'dict'> {"Code": 200, "Count": 657, "Posts": [{"Id": 0, "PostId": "1123178321664806912", "RecruitPostId": 49691}, {"Id": 0, "PostId": "1123178321664806912", "RecruitPostId": 49691}]} <class 'str'>

loads 将json转换成python可解析的数据即字典

import requests,json

# 引用requests库

res_music = requests.get('https://c.y.qq.com/soso/fcgi-bin/client_search_cp?ct=24&qqmusic_ver=1298&new_json=1&remoteplace=txt.yqq.song&searchid=65805191174562925&t=0&aggr=1&cr=1&catZhida=1&lossless=0&flag_qc=0&p=1&n=10&w=%E4%BA%94%E6%9C%88%E5%A4%A9&g_tk=5381&loginUin=0&hostUin=0&format=json&inCharset=utf8&outCharset=utf-8&notice=0&platform=yqq.json&needNewCode=0')

# 调用get方法,下载这个字典

json_music=json.loads(res_music.text)#此行可换成    json_music = res_music.json()

print(type(json_music))                       
list_music = json_music['data']['song']['list']

# 一层一层地取字典,获取歌单列表

for music in list_music:

# list_music是一个列表,music是它里面的元素

    print(music['name'])

    # 以name为键,查找歌曲名

<class 'dict'>
温柔
后来的我们
知足
突然好想你
你不是真正的快乐
拥抱
倔强
离开地球表面
盛夏光年
干杯

dump和dumps的区别:


dump是将对象序列化并保存到文件中
dumps是将对象序列化

#将数据序列化后存储到文件中
import pickle
f = open('test.txt','wb')     #pickle只能以二进制格式存储数据到文件
data = {'k1':'python','k2':'java'}
f.write(pickle.dumps(data))     #dumps序列化源数据后写入文件
f.close()

load和loads的区别:


load将序列化字符串从文件读取并反序列化
loads将序列化字符串反序列化

#反序列化读取源数据
import  pickle
f = open('test.txt','rb')
da = pickle.loads(f.read())     #使用loads反序列化   或着      da=pickle.load(f)
print(da)
 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值