python层级抓取_python实现提取str字符串/json中多级目录下的某个值-程序员宅基地

技术标签: python层级抓取  

字符串多级目录取值:

比如说:

你response接收到的数据是这样的。

你现在只需要取到itemstring 这个字段下的值。其他的都不要!

327c081457ae5c75e97e3a4568c5909e.png

思路就是:字符串是个json格式(或转为json格式),然后str转为字典dict,然后循环遍历按照key来取值。

你的data是个字典 然后item_list是data的Key ,item_list是个数组,这个里面的数组中的每个元素都是一个字典。

因此就是dict多级路径按key取值。

# 多级目录提取-dict

print(type(response))

print(type(response.text))

result = json.loads(resp.text) # 字符串转字典

print(type(result))

for i in result["data"]["item_list"]:

print(i["itemstring"])

结果》》》

提取的值。。。。。。出现

最后获取出来的是:

所有itemstring字段的值:(遍历出来的)

3fd8ab75f5c3d7bce86d2fdd95e5b4e2.png

看得懂的就是需要的。这是我调用腾讯API,然后出现返回值是一个含有N个字段的json数据,最后我提取出来OCR识别的部分。其他的没有要。

补充拓展:按照Json的层级提取各个字段的实例

如下所示:

String s = "{\"error\":0,\"status\":\"success\",\"results\":[{\"currentCity\":\"青岛\",\"index\":[{\"title\":\"穿衣\",\"zs\":\"较冷\",\"tipt\":\"穿衣指数\",\"des\":\"建议着厚外套加毛衣等服装。年老体弱者宜着大衣、呢外套加羊毛衫。\"},{\"title\":\"紫外线强度\",\"zs\":\"最弱\",\"tipt\":\"紫外线强度指数\",\"des\":\"属弱紫外线辐射天气,无需特别防护。若长期在户外,建议涂擦SPF在8-12之间的防晒护肤品。\"}],}]}";

JSONObject jsonObject = JSON.parseObject(s);

//提取出error为 0

int error = (int) jsonObject.get("error");

System.out.println("error:" + error);

//提取出status为 success

String status = jsonObject.getString("status");

System.out.println("status:" + status);

//注意:results中的内容带有中括号[],所以要转化为JSONArray类型的对象

JSONArray result = jsonObject.getJSONArray("results");

for (int i = 0; i < result.size(); i++) {

//提取出currentCity为 青岛

String currentCity = result.getJSONObject(i).getString("currentCity");

System.out.println("currentCity:" + currentCity);

//注意:index中的内容带有中括号[],所以要转化为JSONArray类型的对象

JSONArray index = result.getJSONObject(i).getJSONArray("index");

for (int j = 0; j < index.size(); j++) {

String title = index.getJSONObject(j).getString("title");

System.out.println("title:" + title);

String zs = index.getJSONObject(j).getString("zs");

System.out.println("zs:" + zs);

String tipt = index.getJSONObject(j).getString("tipt");

System.out.println("tipt:" + tipt);

String des = index.getJSONObject(j).getString("des");

System.out.println("des:" + des);

}

}

}

以上这篇python实现提取str字符串/json中多级目录下的某个值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36239768/article/details/113661564

智能推荐

什么是nvm,nvm详解-程序员宅基地

文章浏览阅读9.5k次,点赞3次,收藏3次。nvm1. 概念详情点击nvm全名node.js version management,是一个node的版本管理工具首先最重要的是:一定要卸载已安装的 NodeJS,否则会发生冲突。然后下载 nvm-windows 最新安装包,直接安装即可。_nvm

软件测试影响最深的bug,软件测试面试题-那些让我印象深刻的bug-程序员宅基地

文章浏览阅读7.7k次。相信大家在工作中面试过程中经常被问到,让你印象最深刻的一个bug是什么,这是一个开放性的题目,并没有标准答案,每个人接触过的系统都不一样,遇到过的问题也不一样,可能面试官只是想看一下你的表达能力,以及平常在工作中是否会进行总结。这类问题可以挑选容易被人忽略的场景,难以想到的场景,特殊机型的兼容性或者特殊操作下才会出现的问题等。接下来为大家分享一个我今天遇到的一个问题:由于缓存中key的设置不合理导..._面试过程中遇到你印象最深刻的bug 是什么

ActivityManagerService启动activity流程简析(二)_removepausetimeout-程序员宅基地

文章浏览阅读2.7k次。Task.java private boolean resumeTopActivityInnerLocked(ActivityRecord prev, ActivityOptions options) { ... // 1.获取栈顶的activity ActivityRecord next = topRunningActivity(true /* focusableOnly */); ... ..._removepausetimeout

草图大师SketchUp 2021 mac版 兼容macos11系统正式上线!_sketch up 有mac版本吗-程序员宅基地

文章浏览阅读3.9k次。草图大师2021 mac版是一款功能强大且完善的建筑草图设计软件,它能够帮助设计师快速的将3D模型进行创建并进行演示和分享,sketchup2021中文名为草图大师mac版,可以快速为用户创建三维创意。sketchup2021 mac版能够满足客户所有需求的三维建筑设计草图软件。从小细节到大部件SketchUp 2020 特别 for Mac都是非常完美处理的草图大师 2021 mac版可以快速为您进行汽车,人物,门窗等模型建造。草图大师SketchUp 2021 mac版SketchUp 20_sketch up 有mac版本吗

tf用法大全:tf.add、tf.subtract、tf.multiply、tf.scalar_mul、tf.div、tf.divide、tf.truediv、tf.flo-程序员宅基地

文章浏览阅读4.3k次。Arithmetic Operatorstf.add、tf.subtract、tf.multiply、tf.scalar_mul、tf.div、tf.divide、tf.truediv、tf.floordiv、tf.realdiv、tf.truncatediv、tf.floor_div..._tf.add

如何让一行文本显示一定的宽度,超出省略号代替_超出宽度省略号-程序员宅基地

文章浏览阅读1.7k次。#box{ width:100px; background-color:#87CEEB; padding:2px 3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;} fd之fa星旅馆有限公司系亚洲规模最大的综合性旅游企业集团_超出宽度省略号

随便推点

IKExpression-程序员宅基地

文章浏览阅读291次。[code="java"]import java.util.ArrayList;import java.util.List;import org.wltea.expression.ExpressionEvaluator;import org.wltea.expression.datameta.BaseDataMeta.DataType;import org.wltea.ex..._import org.wltea.expression.expressionevaluator; import org.wltea.expression

面试总结4_sizeof在计算变量所占空间大小时采取的机制-程序员宅基地

文章浏览阅读2.5k次。网络问题列表1、http/https有什么区别?2、tcp的三次握手和四次挥手?3、tcp和udp的区别?4、user-agent的作用?算法基础问题列表1、深度优先遍历和广度优先遍历的区别?2、手写一个二叉搜索树?3、手写一个堆排序?4、手写一个快速排序?5、手写一个归并排序?6、手写一个选择排序?7、手写一个插入排序?8、手写一个冒泡_sizeof在计算变量所占空间大小时采取的机制

Rosbridge学习_rosbridge_server-程序员宅基地

文章浏览阅读740次。rosbridgerosbridge(rosbridge_suite):一个用于非ROS系统和ROS系统进行交互的通信的功能包。rosbridge主要包含两个部分Rosbridge Protocol和Rosbridge Implementation。Rosbridge Protocol协议部分主要提供了非ROS系统和ROS系统通信的具体格式(JSON格式),包括订阅发布主题、服务调用,获取..._rosbridge_server

01-初识sketch-sketch优势_512h和512w-程序员宅基地

文章浏览阅读1w次,点赞58次,收藏8次。一.Sketch简介Sketch 是一款适用于所有设计师的矢量绘图应用。矢量绘图也是目前进行网页,图标以及界面设计的最好方式。但除了矢量编辑的功能之外,我们同样添加了一些基本的位图工具,比如模糊和色彩校正。我们尽力让 Sketch容易理解并上手简单,有经验的设计师花上几个小时便能将自己的设计技巧在Sketch中自如运用。对于绝大多数的数字产品设计,Sketch 都能替代Adobe Photoshop,Illustrator 和 Fireworks。 ..._512h和512w

Java项目管理工具Maven详解_java的项目管理-程序员宅基地

文章浏览阅读4.5k次。xl_echo编辑整理,欢迎转载,转载请声明文章来源。更多IT、编程案例请联系QQ:1280023003 百战不败,依不自称常胜,百败不颓,依能奋力前行。——这才是真正的堪称强大!!!本文转载自:https://blog.csdn.net/qq_16605855/article/details/79726278maven maven是一个跨平台的项目管理的工具。隶属于Apache下..._java的项目管理

JUnit-4.11使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误-程序员宅基地

文章浏览阅读55次。下载了最新的JUnit版本,是4.11,结果尝试使用发现总是报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing这样的错误,上网查了一下,一般的解决方案是,换一个低一点的版本就好了。还有人说,是缺少hamcrest的包。去官网又看了一下,结果发现这样一段话:junit.jar: Includes the Hamcres..._电脑出现订单4.11可使用什么原因