使用Python爬取分析腾讯新冠疫情数据,并对json格式进行校验

news/2024/9/22 11:28:00

写这篇博客源于 博友的提问

由于禁止反爬,所以返回的json格式是错误的,因此没法直接转换。

可以观察规律进行json串格式校正。json格式需要 [], {} [{}] 成对存在。

1. 效果图

简单看一下,格式是否正确;可以看到返回值中 {} [] 并不是成对存在的 观察结构对齐进行校正。
在这里插入图片描述

2. 源码

import json
import re  # 正则匹配import requests  # 网络请求库def catch_data():url = 'https://view.inews.qq.com/g2/getOnsInfo?name=disease_h5'# 发送请求response = requests.get(url=url).json()a = [m.start() for m in re.finditer("\{", response["data"])]b = [m.start() for m in re.finditer("}", response["data"])]c = [m.start() for m in re.finditer("\[", response["data"])]d = [m.start() for m in re.finditer("]", response["data"])]e = [m.start() for m in re.finditer("\[\{", response["data"])]f = [m.start() for m in re.finditer("}]", response["data"])]print("------------------------")list = []for i in b:try:dataStr = response['data'][:i] + "}}"# print(dataStr)data = json.loads(dataStr)print(i, data['lastUpdateTime'])# print(dataStr)# breakexcept:print('\t', i, 'error', dataStr[-100:])try:dataStr = response['data'][:i] + "}}]}"# print(dataStr)data = json.loads(dataStr)list.append(data)print(i, data['lastUpdateTime'])except:print('\t\t', i, 'error', dataStr[-100:])print(len(response["data"]), a)exp1 = lambda x: x[-1] if len(a) > 0 else Nonereturn exp1(list)data = catch_data()
print(data.keys())
lastUpdateTime = data["lastUpdateTime"]
print(lastUpdateTime)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

Python 有序排列permutations,无序组合combinations,阶乘factorial函数

写这篇博客源于博友的提问:将介绍使用Python 进行 有序排列,无序组合排列,阶乘的函数。 1. 问题及解决 问题: 40个球,四个盒子,一个盒子十个球搞排列组合,每个球和盒子都是不可分辨的&#xf…

中国挪动批改KPI查核制度将器重客户满意度

飞象网讯(魏德龄/文)记者从相关动静处置解到,中国挪动2011年的KPI查核将大幅缩减,并消除数据业务、TD用户数和集体客户等目标,重点调高了利润和客户满意度目标,并加入了相关EVA财务目标查核。去年&#xff…

一起学WP7 XNA游戏开发(八. 让3d model动起来)

如何让3d model动起来,其实就是要给model的bone设置动作,这样整个model就会动起来了。一.获取Bones在fbx文件中可以看到所有bones的名称,这样就可以通过名称来获取到bones。turretBone tankModel.Bones["turret_geo"];…

cv2.threshold() 阈值:使用Python,OpenCV进行简单的图像分割

图像分割有多种形式。 聚类、压缩、边缘检测、区域增长、图分区、分水岭等等;(Clustering. Compression. Edge detection. Region-growing. Graph partitioning. Watershed. The list goes on.) 但是最开始只有最基本的一种:就是…

文件读写操作

如图&#xff0c;点击选择文件则读取文件路径&#xff0c;读取时将文件内容显示到文本框中&#xff0c;写入时将文本框内容写入文件 View Code namespace 文件操作{ public partial class Form1 : Form { public Form1() { InitializeComponent(); }/// <summary>/// 选…

Python OpenCV分水岭算法分割和提取重叠或有衔接的图像中的对象

本文将介绍如何使用分水岭算法对触摸和重叠的图像中的对象进行分割和提取。 参考&#xff1a;https://www.pyimagesearch.com/2015/11/02/watershed-opencv/ 分水岭算法是一种分割的经典算法&#xff0c;在提取图像中连接或重叠的图像中的对象&#xff08;例如上图中的硬币&…

ubuntu18.04上安装TensorFlow2.0

推特上几乎每天都有关于深度学习中Keras、TensorFlow哪个个才是最好的框架的口水战。2019年后&#xff0c;这将不在是个问题。 2019年初&#xff0c;tf.keras 子模块已引入TensorFlow v1.10.0中。 现在&#xff0c;在TensorFlow 2.0中&#xff0c;Keras是TensorFlow的官方高级A…

docker 镜像容器导入导出、查看日志、拷贝文件命令

1. 本地文件拷贝到docker 容器中&#xff0c;参考 docker cp /root/pcl-pcl-1.8.1.tar.gz 7ff95b333e12:/docker cp /root/lib64_a 7ff95b333e12:/2. docker从容器里面拷文件到宿主机 docker cp 容器名&#xff1a;要拷贝的文件在容器里面的路径 要拷贝到宿主机的相应路径 d…