07 Json模块

1.json模块介绍

在这里插入图片描述
在这里插入图片描述
2.Json转换为Python
在这里插入图片描述
在这里插入图片描述
注意:json的字符串需要是双引号的,而字典一般是单引号的
在这里插入图片描述
这里注意:什么时候使用loads、什么时候使用load

import json

# 1.把Json字符串,转换为Python数据
# 1.1 准备JSON字符串
json_str = '''[{"provinceName":"法国","currentConfirmedCount":32710763,"confirmedCount":33229834},
{"provinceName":"美国","currentConfirmedCount":22710763,"confirmedCount":23229834}]'''
# 1.2 把Json字符串,转换为python数据
rs = json.loads(json_str)
print(rs)
print(type(rs))  # <class 'list'>
print(type(rs[0]))  # <class 'dict'>  单引号

# 2.把Json格式文件,转化为Python类型数据
# 2.1 构建指向该文件的文件对象(涉及到文件操作)
with open('data/test1') as fp:
    # 2.2 加载该文件对象,转换为python类型的数据
    python_list = json.load(fp)     # 注意:这里是load不是loads
    print(python_list)
    print(type(python_list))
    print(type(python_list[0]))

在这里插入图片描述

3.python转换为Json
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import json

# 1.把python转换为json字符串
# 1.1 python类型的数据
json_str = '''[{"provinceName":"法国","currentConfirmedCount":32710763,"confirmedCount":33229834},
{"provinceName":"美国","currentConfirmedCount":22710763,"confirmedCount":23229834}]'''

rs = json.loads(json_str)
# 1.2 把python转换为json字符串
json_str = json.dumps(rs, ensure_ascii=False)
print(json_str)

# 2.把python以json格式存储到文件中
# 2.1 构建要写入文件对象
with open('data/test2.json', 'w',) as fp:
    # 2.2 把python以json格式存储到文件中
    json.dump(rs, fp, ensure_ascii=False)

4.案例解析疫情信息的Json字符串
在这里插入图片描述

# 1.导入相关模块
import re
import requests
from bs4 import BeautifulSoup
import json

# 2.发送请求,获取疫情首页内容
response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia')
home_page = response.content.decode()

# 3.使用BeautifulSoup提取疫情数据
soup = BeautifulSoup(home_page, 'lxml')
script = soup.find(id="getListByCountryTypeService2true")
# print(script)  # 这里直接写script就行,就能把内容全部打印出来

# 4.使用正则表达式,提取json字符串
json_str = re.findall(r'\[.+\]', script.string)[0]
# print(json_str)

# 5、把json字符串转换为python类型的数据
last_day_corona_virus=json.loads(json_str)    # 最新的信息
print(last_day_corona_virus)


'''
通过观察控制台输出的内容查看是Json字符串(json字符串的键是双引号),还是python里的列表(列表的键是单引号)
'''

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值