Python爬虫入门 json 文件的序列化

文件的序列化和反序列化(pycharm)

  序列化就是将Python中的对象即(列表(list) 元组() 字典(dict))转化成字符串,将其保存到文件中。(PS:因为列表等不能直接保存会报错),反序列化则相反。

㈠ 序列化的2种方式
❶dumps()

#(1)创建一个文件
fp = open('test.txt','w')
#(2)定义一个列表
name_list = ['BJT','LH']
#导人json模块珂该文件中
import json
# 将python对象变成json字符串
#我们在使用scrapy框架的时候 该框架会返向一个对象 我们要将对象写入到文件中 要使用json.dumps
names= json.dumps(name_list)
#将names写人到文件中
fp.write(names)
fp.close()

❷dump()

#创建文件

file=open('text.txt','w')

name_list=['bjt','lh']

#导入JSON模块

import json

json.dump(name_list,file)

file.close()

注意:如果输入中文字符

#创建文件
file = open('work.txt','w')
food_list = ['冒菜','麻辣烫','火锅']
#导入需要的json模块
import json
json.dump(food_list,file)
#关闭文件
file.close()

则会输出

["\u5192\u83dc", "\u9ebb\u8fa3\u70eb", "\u706b\u9505"]

  因为此时有中文数据(或者其它 非ascii字符),写入的时候会被强行转义。而要关闭这个转义,也只要在使用 json.dump 的时候,指定一个关键词参数 就可以。

json.dump(obj, fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw)

 

 其中的 ensure_ascii 默认为 True,表示会将所有输入的非 ASCII 字符转义。只要改成 False 就可以。

json.dump(food_list,file,ensure_ascii=False)

输出

["冒菜", "麻辣烫", "火锅"]

㈡反序列化

反序列化就是将json对象转化成为字符串

❶loads用法

fp = open('work.txt','r')

content=fp.read()

import json

f=json.loads(content)

print(f)

❷load用法

fp = open('work.txt','r')

import json

print(json.load(fp))

两者输出都是

['冒菜', '麻辣烫', '火锅']

 50c2db7243074c59b5022718f0ac8c23.png

 感谢看到这一行的你。

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值