news 2026/2/5 11:08:15

如何准确判断json文件并且拿到我想要的信息

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何准确判断json文件并且拿到我想要的信息

写在前面,自从发现拿到json解析后的文件中有我们想要的信息后,我稍微有点迷上这种方法,但是拿到内容后要怎么拿到想要的信息呢,字典列表相互嵌套,我头都晕了

方法:首先就是把json解析后的文本保存成.json的形式

这里展现的是微博的一个热搜页面

下面这个代码就是拿到想要的信息后保存下来,我们爬虫不要过度,要合法的爬取,礼貌的爬取

import requests import json url="https://weibo.com/ajax/side/hotSearch" headersvalue={ 'User-Agent':"自己的", "Referer":"自己的" } r=requests.get(url,headers=headersvalue) data=r.json() print(data) with open('weibo.json',"w",encoding="utf-8") as f: json.dump(data,f,indent=4,ensure_ascii=False)

可以看到一个文件的格式,是一个字典,下面的解释我就直接写在代码里面

详解1:

#拿这里面的信息hotgovs,首先看大结构,是一个字典,里面的键值对有{"ok":1,"data":xxx,"logs":xxx,} #我们要拿的东西在这个字典的键data对应的值里,字典取值用键,所以先选择这个键data['data'],拿到它的值,发现它的值也是一个一个字典 #继续根据你要的值找键 toptitle=data['data']['hotgovs'][0]["word"].strip("#") print(f'置顶标题:{toptitle}') #这里我们发现有一个realtime的键,值是一个列表,列表里装的元素是一个一个字典,字典有我们想要的标题还有热度之类的信息 #所以我们写一个循环,来遍历这个列表,列表的遍历有两种方法 #方法1:直接遍历 data=data['data']['realtime'] #这里遍历,item都是一个一个字典元素,所以取值还是用键值对 for item in data: #这样写有一个非常大的缺点,如果遍历到这个元素,没有这个键的话就会报错keykerror realpos=item["realpos"] word=item["word"] num=item["num"] print(realpos) print(word) print(num)

可以看到遍历到第7个元素报错了

找一下就会发现第七个元素不是我们要找的热点排行榜里面的,大概率是条广告

详解2:

#方法1:直接遍历 data=data['data']['realtime'] #这里遍历,item都是一个一个字典元素,所以取值还是用键值对 for item in data: #这样写有一个非常大的缺点,如果遍历到这个元素,没有这个键的话就会报错keykerror # realpos=item["realpos"] # word=item["word"] # num=item["num"] #所以保险起见,我们取字典的值用get()方法,是字典的专属方法 realpos=item.get('realpos','空') word=item.get('word','空') num= item.get('num', '空') print(realpos) print(word) print(num) #方法二:用enumerate方法遍历,这个方法返回的是元组,是索引加元素的组合 for index,item in enumerate(data): print(f"第{index}个热点") realpos = item.get('realpos', '空') word = item.get('word', '空') num = item.get('num', '空') print(realpos) print(word) print(num)
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/4 16:58:49

终极指南:如何为泉盛UV-K5对讲机刷入开源固件实现专业功能

终极指南:如何为泉盛UV-K5对讲机刷入开源固件实现专业功能 【免费下载链接】uv-k5-firmware-custom This is a fork of Egzumer https://github.com/egzumer/uv-k5-firmware-custom 项目地址: https://gitcode.com/gh_mirrors/uvk/uv-k5-firmware-custom 想要…

作者头像 李华
网站建设 2026/2/2 6:32:58

豆包手机AI Agent技术深度解析

系统架构与实现原理 章节介绍 本章节深入剖析豆包手机AI Agent的技术实现细节,从系统进程、权限管理到推理架构,揭示了移动端AI自动化操作的核心机制。通过对autoaction、aikernel等关键进程的分析,我们了解到豆包手机如何通过底层系统权限…

作者头像 李华
网站建设 2026/2/6 0:45:35

在 C++ 中轻松实现字符串与字符数组的相互转换

一、将字符串转换为 char 数组C 提供了以下将字符串转换为 char 数组的技术:使用 c_str()和 strcpy() 函数。使用 for 循环。1.1、C 中的 c_str()和 strcpy()函数C 函数c_str()以及 C 字符串函数strcpy()可用于轻松地将字符串转换为字符数组。c_str()方法表示字符串…

作者头像 李华
网站建设 2026/2/4 0:12:00

基于 STM32 的太阳能 MPPT 充电控制器设计

摘要针对传统太阳能充电控制器充电效率低、无法自适应光照和负载变化的问题,设计了一款基于 STM32 单片机的最大功率点跟踪(MPPT)太阳能充电控制器。该系统以 STM32F103C8T6 为核心控制单元,结合电压电流采样电路、DC-DC 变换电路…

作者头像 李华
网站建设 2026/2/5 17:58:43

高效获取高质量外链:2026年必须掌握的10个核心策略

反向链接是从其他网站指向你网站的链接。而获得反向链接仍然是提升你在线可见度最有效的方法之一。 反向链接长期以来被认可为传统搜索的价值,但它们对人工智能搜索同样重要。这是因为像ChatGPT、Perplexity和谷歌的AI概览部分基于他人在线谈论你的信息来了解你的品…

作者头像 李华
网站建设 2026/2/3 0:39:55

Feign基本知识

Feign声明式服务调用 1. 学习目标2. 什么是Feign ​ Feign是Spring Cloud Netflix组件中的一个轻量级Restful的HTTP客户端,实现了负载均衡和Rest调用的开源框架,封装了Ribbon和RestTemplate,实现了WebService的面向接口编程,进一…

作者头像 李华