python3爬虫学习之数据存储JSON

本文详细介绍了JSON数据格式的基础知识,并通过实例演示了如何使用Python中的json模块进行数据的序列化和反序列化操作。

JSON,全称为JavaScript Object Notation,也就是JavaScript对象标记。它通过对象和数组的组合来表示数据,构造简洁但是结构化非常高,是一种轻量级的数据交换格式。另,推个网站:

json.cn

我们将了解到四个方法:dumps,dump,load,loads

所有代码基于此

import json

user = [
    {
        'name' : '张三',
        'age' : 19,
        'password' : 'abc'
    },
{
        'name' : '李四',
        'age' : 19,
        'password' : 'qwe'
    }
]

我们应该注意到,json的对象是用双引号来包围,这里用单引号不影响是因为我们首先进行的是dump和dumps操作,如果是load和laods操作,解释器会报错,json.cn也会报错

一:dumps方法,将python对象转化为json类型

json_str = json.dumps(user , ensure_ascii=False)
with open ("json_demo.json", "w" , encoding="utf-8") as fp:
    fp.write(json_str)

如果出现中文乱码,请注意在这里应该

ensure_ascii=False

且指定编码为utf-8

二:dump方法

with open ("json_demo1.json" , "w" , encoding="utf-8") as fp: #编码避免中文乱码
    json.dump(user ,fp , ensure_ascii=False)

可以对比两种方法的区别

三:load方法:将文件中的字符串转化为python对象

注意,我们在前面已经生成了json_dome.json,所以用load和loads方法不是获取第一段代码中的字符串,因此不会报错

with open("json_demo.json" ,"r" ,encoding="utf-8") as fp:
    s = json.load(fp)
    print(s)

四:loads方法:

json_str = json.dumps(user , ensure_ascii=False)
s = json.loads(json_str)
for a in s:
    print(a)

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值