五、json模块

一、json模块的介绍

json模块是Python自带的模块,用于json和Python数据之间的相互转换

Json与Python数据类型的对应关系

JsonPython
objectdict
arraylist
stringstr
number(int)int,long
number(real)float
trueTrue
falseFalse
nullNone
[#中括号括起来的,对应与Json中的array数组,在python中为list列表{#大括号括起来的,对应于Json中的object对象,在python中为dict字典"beyond":"yanyu"#beyond在Json中为对象的属性,在python为字典的键;yanyu在Json中为属性的值,在python为字典的值},{"age":22#当然字符串string--str;number(int)--int、long}
]

二、JSON转换为Python

在这里插入图片描述
1,把JSON字符串转为Python数据

import jsonjson_str = '''[{"name":"huangjiaju","age":"43","band":"beyond"}]'''#准备JSON字符串rs = json.loads(json_str)#转换为Python数据
print(rs)#结果为:[{'name': 'huangjiaju', 'age': '43', 'band': 'beyond'}]print(type(rs))#结果为:<class 'list'>
print(type(rs[0]))#结果为:<class 'dict'>

2,把JSON格式的文件转为Python类型的数据
在这里插入图片描述
json.json

[{"name":"huangjiaju","age":"43","band":"beyond"}
]
import jsonwith open("E:\Jupyter_workspace\study\python\爬虫\json.json") as fp:python_list = json.load(fp)print(python_list)#结果为:[{'name': 'huangjiaju', 'age': '43', 'band': 'beyond'}]print(type(python_list))#结果为:<class 'list'>print(type(python_list[0]))#结果为:<class 'dict'>

三、Python转换为JSON

1,把Python类型数据转为JSON字符串
在这里插入图片描述

import jsonpython_str = '''[{"name":"huangjiaju","age":"43","band":"beyond"}]'''#准备Python数据
rs = json.loads(python_str)
json_str = json.dumps(rs,ensure_ascii=False)#转换为JSON字符串 第二个参数表示是否使用ASCII码,默认为True,若有汉字则需要设置为False
print(json_str)#结果为:[{"name": "huangjiaju", "age": "43", "band": "beyond"}]

2,把Python类型数据以JSON格式存储到文件中
在这里插入图片描述

import jsonpython_str = '''[{"name":"huangjiaju","age":"43","band":"beyond"}]'''#准备Python字符串
rs = json.loads(python_str)with open("E:\Jupyter_workspace\study\python\爬虫\json1.json",'w') as fp:json.dump(rs,fp,ensure_ascii=False)#转换为JSON字符串 第二个参数表示是否使用ASCII码,默认为True,若有汉字则需要设置为False

最终效果为生成json1.json,成功的把Python类型数据以JSON格式存储到文件中。
在这里插入图片描述
json1.json内容如下:在这里插入图片描述

四、解析最新的疫情数据的json字符串

步骤:

  1. 发送请求,获取疫情首页
  2. 从疫情首页中提取各国疫情字符串
  3. 从各国疫情字符串中,提取json格式字符串
  4. 把json格式字符串转换为Python数据类型

当然,数据来源仍然是丁香园新型冠状病毒肺炎疫情实时动态首页
url:https://ncov.dxy.cn/ncovh5/view/pneumonia

# 1,导入相关模块
import requests
import re
import json
from bs4 import BeautifulSoup# 2,发送请求,获取疫情首页内容
response = requests.get('https://ncov.dxy.cn/ncovh5/view/pneumonia')
home_page = response.content.decode()
#print(home_page)
# 3,使用Beautiful Soup提取疫情数据
soup = BeautifulSoup(home_page,'lxml')
script = soup.find(id='getAreaStat')
text = script.text
#print(text)# 4,使用正则表达式提取json字符串
json_str = re.findall(r'\[.+\]',text)[0]#由于中括号是个特殊的字符,需要在前面加个转义符;最后的结果会存在列表中,故使用[0]来获取完整json格式
#print(json_str)# 5,把json字符串转换为Python类型的数据
last_day_HongKong_num = json.loads(json_str)
print(last_day_HongKong_num)
'''
[{'provinceName': '香港', 'provinceShortName': '香港', 'currentConfirmedCount': 5990, 'confirmedCount': 22468, 'suspectedCount': 181, 'curedCount': 16190, 'deadCount': 288, 'comment': '疑似 1 例', 'locationId': 810000, 'statisticsData': 'https://file1.dxycdn.com/2020/0223/331/3398299755968040033-135.json', 'highDangerCount': 0, 'midDangerCount': 0, 'detectOrgCount': 0, 'vaccinationOrgCount': 0, 'cities': [], 'dangerAreas': []}, {'provinceName': '台湾', 'provinceShortName': '台湾', 'currentConfirmedCount': 5462, 'confirmedCount': 20056, 'suspectedCount': 485, 'curedCount': 13742, 'deadCount': 852, 'comment': '', 'locationId': 710000, 'statisticsData': 'https://file1.dxycdn.com/2020/0223/045/3398299749526003760-135.json', 'highDangerCount': 0, 'midDangerCount': 0, 'detectOrgCount': 0, 'vaccinationOrgCount': 0, 'cities': [], 'dangerAreas': []}, {'provinceName': '浙江省', 'provinceShortName': '浙江', 'currentConfirmedCount': 388, 'confirmedCount': 2255, 'suspectedCount': 68, 'curedCount': 1866, 'deadCount': 1, 'comment': '2月10日通报核减的12例在浙江省治愈的外省病例,根据国家最新要求重新纳入累计病例。', 'locationId': 330000, 'statisticsData': 'https://file1.dxycdn.com/2020/0223/537/3398299755968455045-135.json', 'highDangerCount': 0, 'midDangerCount': 0, 'detectOrgCount': 519, 'vaccinationOrgCount': 217, 'cities': [{'cityName': '杭州', 'currentConfirmedCount': 143, 'confirmedCount': 328, 'suspectedCount': 0, 'curedCount': 185, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330100, 'currentConfirmedCountStr': '143'}, {'cityName': '境外输入', 'currentConfirmedCount': 119, 'confirmedCount': 387, 'suspectedCount': 68, 'curedCount': 268, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 0, 'currentConfirmedCountStr': '119'}, {'cityName': '宁波', 'currentConfirmedCount': 110, 'confirmedCount': 269, 'suspectedCount': 0, 'curedCount': 159, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330200, 'currentConfirmedCountStr': '110'}, {'cityName': '绍兴', 'currentConfirmedCount': 38, 'confirmedCount': 430, 'suspectedCount': 0, 'curedCount': 392, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330600, 'currentConfirmedCountStr': '38'}, {'cityName': '金华', 'currentConfirmedCount': 2, 'confirmedCount': 57, 'suspectedCount': 0, 'curedCount': 55, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330700, 'currentConfirmedCountStr': '2'}, {'cityName': '温州', 'currentConfirmedCount': 0, 'confirmedCount': 504, 'suspectedCount': 0, 'curedCount': 503, 'deadCount': 1, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330300, 'currentConfirmedCountStr': '0'}, {'cityName': '台州', 'currentConfirmedCount': 0, 'confirmedCount': 147, 'suspectedCount': 0, 'curedCount': 147, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 331000, 'currentConfirmedCountStr': '0'}, {'cityName': '嘉兴', 'currentConfirmedCount': 0, 'confirmedCount': 46, 'suspectedCount': 0, 'curedCount': 46, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330400, 'currentConfirmedCountStr': '0'}, {'cityName': '省十里丰监狱', 'currentConfirmedCount': 0, 'confirmedCount': 36, 'suspectedCount': 0, 'curedCount': 36, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 0, 'currentConfirmedCountStr': '0'}, {'cityName': '丽水', 'currentConfirmedCount': 0, 'confirmedCount': 17, 'suspectedCount': 0, 'curedCount': 17, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 331100, 'currentConfirmedCountStr': '0'}, {'cityName': '衢州', 'currentConfirmedCount': 0, 'confirmedCount': 14, 'suspectedCount': 0, 'curedCount': 14, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330800, 'currentConfirmedCountStr': '0'}, {'cityName': '湖州', 'currentConfirmedCount': 0, 'confirmedCount': 10, 'suspectedCount': 0, 'curedCount': 10, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330500, 'currentConfirmedCountStr': '0'}, {'cityName': '舟山', 'currentConfirmedCount': 0, 'confirmedCount': 10, 'suspectedCount': 0, 'curedCount': 10, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 330900, 'currentConfirmedCountStr': '0'}, {'cityName': '待明确地区', 'currentConfirmedCount': -24, 'confirmedCount': 0, 'suspectedCount': 0, 'curedCount': 24, 'deadCount': 0, 'highDangerCount': 0, 'midDangerCount': 0, 'locationId': 0, 'notShowCurrentConfirmedCount': True, 'currentConfirmedCountStr': '-'}], 'dangerAreas': []}, {'provinceName': '广东省', 'provinceShortName': '广东', 'currentConfirmedCount': 362, 'confirmedCount': 4163, 'suspectedCount': 25, 'curedCount': 3793, 'deadCount': 8, 'comment': '广东卫健委未明确部分治愈病例的地市归属,因此各地市的现存确诊存在一定偏差。', 'locationId': 440000, 'statisticsData': 'https://file1.dxycdn.com/2020/0223/281/3398299758115524068-135.json', 'highDangerCount': 0, 'midDangerCount': 3, 'detectOrgCount': 120, 'vaccinationOrgCount': 42, 'cities': [{'cityName': '深圳', 'currentConfirmedCount': 145, 'confirmedCount': 798, 'suspectedCount': 3, 'curedCount': 650, 'deadCount': 3, 'highDangerCount': 0, 'midDangerCount': 3, 'locationId': 440300, 'currentConfirmedCountStr': '145'}, {'cityName': '广州', 'currentConfirmedCount': 98, 'confirmedCount': 2205, 'suspectedCount': 3, 'curedCount': 2106, 'deadCount': 1, 'highDangerCount': 0, 'midDangerCount': 0,内容过多此处省略
'''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构基础笔记】【树】

代码参考《妙趣横生的算法.C语言实现》 文章目录前言1、树的概念2、二叉树3、二叉树的遍历4、创建二叉树5、实例分析前言 本章总结&#xff1a;树的概念、二叉树的创建、遍历 1、树的概念 树结构是以分支关系定义得一种层次结构。 树的定义&#xff1a;树是由n(n>0)个结点…

可以自动撑起的html样式,好好玩:CSS3抖动样式CSS Shake让你的网页酷炫起来

之前在一些网站发现了一个好玩的样式&#xff0c;就是鼠标移到网站LOGO上&#xff0c;logo会自动抖动起来&#xff0c;显得非常炫酷。我也是十分感兴趣。自从本站新添加了一个视觉设计的分类之后&#xff0c;我也是想起来有个抖动CSS样式CSS Shake&#xff0c;所以今天给小伙伴…

爬虫项目(一)---采集最近一日世界各国的疫情数据信息

该内容出自黑马程序员教程 采集最近一日世界各国疫情数据 步骤&#xff1a; 发送请求&#xff0c;获取疫情首页从疫情首页中提取最近一日各国疫情字符串从最近一日各国疫情字符串中提取json格式字符串把json格式字符串转换为Python类型把Python类型的数据&#xff0c;以json…

【数据结构基础应用】【顺序表】

代码参考《妙趣横生的算法.C语言实现》、《剑指OFFER 名企面试官精讲典型编程题 第2版》等 文章目录前言1、合并两个顺序表前言 本章总结在看书过程中的一些关于顺序表的算法题并可能含有一些自己的一些疑问。题目数量不定&#xff0c;随阅历增加而增加&#xff1b; 1、合并两…

html上下滚动切换顶端tab,jQuery实现Tab菜单滚动切换的方法

本文实例讲述了jQuery实现Tab菜单滚动切换的方法。分享给大家供大家参考。具体如下&#xff1a;这是一款jQuery实现让你的Tab菜单滚动的代码,先运行一下看看效果咋样?是不是超不错,让你的网页变得灵动起来,不再静止,学习jquery的朋友也可作为范例来参考吧.运行效果截图如下&am…

[转载]十四步实现拥有强大AI的五子棋游戏

又是本人一份人工智能作业……首先道歉&#xff0c;从Word贴到Livewrter&#xff0c;好多格式没了&#xff0c;也没做代码高亮……大家凑活着看……想做个好的人机对弈的五子棋&#xff0c;可以说需要考虑的问题还是很多的&#xff0c;我们将制作拥有强大AI五子棋的过程分为十四…

爬虫项目(二)---采集从03月02号以来的世界各国疫情数据

该内容出自黑马程序员教程 采集从03月02号以来的世界各国疫情数据 步骤&#xff1a; Ⅰ&#xff0c;重构项目(一)的代码&#xff0c;以提高扩展性 把功能封装到一个类中每一个小功能变成一个方法通过run方法启动爬虫 import requests import re import json from bs4 impor…

【原创】StreamInsight查询系列(二十)——查询模式之检测间隙事件

上篇文章介绍了查询模式中如何检测异常事件&#xff0c;这篇博文将介绍StreamInsight中如何检测间隙事件。 测试数据准备 为了方便测试查询&#xff0c;我们首先准备一个静态的测试数据源&#xff1a;// 创建数据源&#xff0c;要注意的是4:16和4:30之间存在的事件间隙 var sou…

【数据结构基础应用】【查找和排序算法】

代码参考《妙趣横生的算法.C语言实现》 文章目录前言1、顺序查找2、折半查找3、直接插入排序4、选择排序5、冒泡排序6、希尔排序7、快速排序8、堆排序9、排序算法性能比较10、所有算法的code&#xff08;C语言&#xff09;前言 本章总结查找和排序算法&#xff1a;顺序查找、折…

爬虫项目(三)---采集最近一日全国各省疫情数据

该内容出自黑马程序员教程 采集最近一日全国各省疫情数据 当然&#xff0c;数据来源仍然是丁香园新型冠状病毒肺炎疫情实时动态首页 url&#xff1a;https://ncov.dxy.cn/ncovh5/view/pneumonia 思路&#xff1a;首先需要先确定全国各省疫情数据的位置 全国各省份的疫情数据…

计算机专业博士后排名,排名丨计算机专业领域TOP10,性价比超高!

原标题&#xff1a;排名丨计算机专业领域TOP10&#xff0c;性价比超高&#xff01;相信各位家长、同学已经看过太多专业的排名&#xff0c;我问过很多理科生将来想学什么专业&#xff0c;听到频率最高的还是计算机专业。似乎大家都知道&#xff0c;学计算机是比较挣钱的&#x…

js 命名规范

转载于:https://www.cnblogs.com/zjx2011/p/3165043.html

爬虫项目(四)---采集从01月22日以来全国各省疫情数据

采集从03月02日以来全国各省疫情数据 当然&#xff0c;数据来源仍然是丁香园新型冠状病毒肺炎疫情实时动态首页 url&#xff1a;https://ncov.dxy.cn/ncovh5/view/pneumonia 分析 确定01月22日以来全国各省疫情数据的URL 由项目(三)可以获取全国各省疫情数据点击可下载&…

纠错码trick和数据压缩trick

纠错码和压缩算法是同一枚硬币的两面。 两者都来自于对冗余的想法。 纠错码被视为向消息或文件中添加冗余的原则性方法。而压缩算法正好相反&#xff0c;他们会从消息或文件中移除冗余。 压缩和纠错并不是彼此抵消的&#xff0c;相反&#xff0c;好的压缩算法会移除抵消冗余&am…

常用算法总结(穷举法、贪心算法、递归与分治算法、回溯算法、数值概率算法)

博主联系方式&#xff1a; QQ:1540984562 QQ交流群&#xff1a;892023501 群里会有往届的smarters和电赛选手&#xff0c;群里也会不时分享一些有用的资料&#xff0c;有问题可以在群里多问问。 目录1、穷举法2、贪心算法3、递归与分治算法4、回溯算法5、数值概率算法1、穷举法…

工程师英语和计算机证书查询,点击进入国家硬件维修工程师证书查询网站

工程师证书查询网站人力资源社会保障部指定查询国家职业资格证书的唯一官方网站。涵盖全国各省市、各行业、各央企颁发的证书。电脑硬件维修工程师网上能查看国家工信部硬件维修工程师证书查询网址&#xff1a;http://www.ceiaec.org/index.htm工程师证书编号在网上怎么查询如果…

敏捷开发“松结对编程”系列之七:问题集之一

本文是“松结对编程”系列的第七篇。&#xff08;之一&#xff0c;之二&#xff0c;之三&#xff0c;之四&#xff0c;之五&#xff0c;之六&#xff0c;之七&#xff0c;之八&#xff09;刚刚参加完MPD 2011深圳站&#xff0c;在演讲中间及后来媒体采访&#xff0c;被问到了一…

C++中的sort函数对二维数组排序是按照什么准则?

遇到的一个疑惑&#xff0c;现记录如下&#xff1a; int main() {vector<vector<int>> envelopes { {5, 8},{6, 7},{6, 4},{2, 3},{8,9} };sort(envelopes.begin(), envelopes.end());for (int i 0;i < envelopes.size();i)cout << envelopes[i][0]<…

数学专业学计算机哪一行,计算数学

计算数学(一个理科专业)语音编辑锁定讨论上传视频计算数学是由数学、物理学、计算机科学、运筹学与控制科学等学科交叉渗透而形成的一个理科专业。中文名计算数学外文名Computational Mathematics所 属数学计算数学专业定义编辑语音计算数学也叫做数值计算方法或数值分析。主…

图片透视变换操作

由于照相机硬件设备本身的误差&#xff0c;可能会导致镜头畸变&#xff0c;从而导致照相机拍摄到的照片产生失真现象&#xff0c;此时可以通过透视变换去适当的校正。 大概的思路&#xff1a;在原图像上确定四个点&#xff0c;然后再新图像上也确定四个点&#xff0c;通过warp…