【笔记】爬虫基础_数据存储_01_JSON字符串

什么是JSON字符串:
JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript (w3c制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

=============================================

JSON支持数据格式:
对象(字典):使用花括号。
数组(列表):使用方括号。
字符串类型:字符串必须要用双引号,不能用单引号。
整形、浮点型、布尔类型还有null类型。
多个数据之间使用逗号分开。
注意:json本质上就是一个字符串。

=============================================

将Python对象dump成JSON字符串:

  1. dumps:把Python对象转换成JSON格式的字符串。
import json

books = [
{'name':'三国演义',
'price''18.8'},
{'name':'三国演义'
'price''19.9'}
]  # 这是一个包含字典、数组的python对象
result = dumps(books, ensure_ascii=False)
print(result)
print(type(result))

输出:

[{"name": "三国演义", "price": "18.9"}, {"name": "水浒传", "price": 19.9}]  # 原本字符串上的单引号自动变成了双引号
<class 'str'>  # json本质上就是一个字符串
  1. dump:把Python对象转换成JSON格式的字符串,并且还可以接收一个文件指针fp参数,可以写入到文件中。
with open('books.json', 'w', encoding='UTF-8') as fp:
	json.dump(books, fp, ensure_ascii=False)

这两个方法都有一个ensure_ascii参数,默认情况下这个参数的值是True,也就是说转换后的JSON字符串是只能存储ascii格式的,不能存储中文,如果想要存储成中文,那么可以将他设置为False。

=============================================

将JSON字符串load成Python对象:

  1. loads:将JSON字符串转换成Python对象。
books = '[{"name": "三国演义", "price": "18.9"}, {"name": "水浒传", "price": 19.9}]'
print(type(books))
result = json.loads(books)
print(result)
print(type(result))

输出:

<class 'str'>
[{'name': '三国演义', 'price': '18.9'}, {'name': '水浒传', 'price': 19.9}]
<class 'list'>
  1. load:将JSON字符串转换成Python对象,并且是直接从文件中获取JSON字符串。
with open('books.json', 'r', encoding='utf-8') as fp:
	result = json.load(fp)
    print(result)
    print(type(result))

输出:

[{'name': '三国演义', 'price': '18.9'}, {'name': '水浒传', 'price': 19.9}]
<class 'list'>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值