es查询响应结果中获取某些字段的值
有时候使用es查询出的结果包含多个字段,如果数据中仅仅包含几个字段时,我们是很容易挑出自己需要的字段值,但是如果数据中包含几十或者几百甚至更多时,尤其是数据中嵌套好多层时,不容易直接挑取出需要的值,这时候可以借助程序直接查找出来。或者针对性的直接查询时就限定条件查询某些字段的值。
直接从es中查询出的示例数据:
{"took": 918,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 4,"relation": "eq"},"max_score": 1.0,"hits": [{"_index": "test","_type": "user","_id": "QHi1UoIBpyNh4YQ4T1Sq","_score": 1.0,"_source": {"id": 1001,"name": "张三","age": 20,"sex": "男","grade": {"Chinese": 99,"Math": 98,"English": 96}}},{"_index": "test","_type": "user","_id": "1002","_score": 1.0,"_source": {"id": 1002,"name": "李四","age": 23,"sex": "女","grade": {"Chinese": 98,"Math": 99,"English": 97}}},{"_index": "test","_type": "user","_id": "1003","_score": 1.0,"_source": {"id": 1003,"name": "王五","age": 27,"sex": "男","grade": {"Chinese": 93,"Math": 90,"English": 99}}},{"_index": "test","_type": "user","_id": "1004","_score": 1.0,"_source": {"id": 1004,"name": "赵六","age": 29,"sex": "女","grade": {"Chinese": 100,"Math": 95,"English": 94}}}]}
}
使用python打印出需要的字段值:
import json
import jmespathwith open('text.txt', 'r', encoding='utf-8') as f:data = f.read()json_data = json.loads(data)
# print(json_data)
sources = json_data.get('hits').get('hits')
# print(sources)
for source in sources:# print(source)data = source.get('_source')print(data)valid_fields = '{name: name, Chinese_grade: grade.Chinese}'ret = jmespath.search(valid_fields, data)print(ret)
运行结果:
注意:使用json.load()时,会把文本中的fase、true直接变为False、True
参考博文:
python中jmespath库用法详解_IT之一小佬的博客-CSDN博客_jmespath python
es查询响应结果中获取某些字段的值相关推荐
- GridView控件RowDataBound事件中获取列字段值的几种途径
前台: <asp:TemplateField HeaderText="充值总额|账号余额"><ItemTemplate><asp:Label ID=& ...
- mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据
本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...
- 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?
编辑器加载中... 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?多表联结查询:select rbd.RBDID, rbd.ProductCode,p.ProductCnName,p. ...
- java 获取继承字段_java – 从类中获取所有字段(甚至是私有的和继承的)
我在做大学项目. 我需要从类中获取所有字段.甚至私人和继承.我试图获取所有声明字段,然后投射到超类并重复. 我的代码片段: private void listAllFields(Object obj) ...
- mysql select 指定列_MySQL使用select语句查询指定表中指定列(字段)的数据
本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...
- Entity Framwork(EF) 7——在Controller内获取指定字段的值
Entity Framwork(EF) 7--在Controller内获取指定字段的值 一.开发背景: 在用户登录的时候,验证用户和密码是否正确.验证通过后将用户名和用户ID保存下来以便后续数据更新时 ...
- 自动装配——@Autowired 构造器,参数,方法,属性都是从容器中获取参数组件的值||自定义组件想要使用Spring容器底层的一些组件 ApplicationContext,BeanFactory
@Autowired:构造器,参数,方法,属性:都是从容器中获取参数组件的值 * 1).[标注在方法位置]:@Bean+方法参数:参数从容器中获取;默认不写@Autowired效果是一样的:都能自动装 ...
- asp.net mvc 如何在View中获取Url参数的值
如果url是 /home/index?id=3 直接Request就ok. 但是如果路由设定为:{controller}/{action}/{id} url是 /home/index/3 这时想 ...
- map中获取数组_如何从php多维数组中获取特定的键值?
点击蓝字关注我们!每天获取最新的编程小知识! 源 / php中文网 源 / www.php.cn 在这篇文章中,我们将给大家介绍如何在php中从多维数组中获取特定的键值数组.这里我们将使用a ...
- 【236期】ElasticSearch 进阶:一文全览各种 ES 查询在 Java 中的实现
点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...
最新文章
- PEInfo编程思路讲解01 - 工具篇01|解密系列
- 【赠书】五一假期福利,OpenCV4最新原理与实战书籍
- 有关C语言中有符号/无符号数混合运算的小问题
- spring和maven_具有Spring和Maven教程的JAX–WS
- 机器人操作系统ROS微信群, 欢迎加我微信: Jdrobots 技术相互学习交流(加我请备注ROS,谢谢!) 。
- 一个常见问题的解决——Ext grid的宽度高度如何自适应
- HTML实现简易音乐网站
- threejs特效:边缘暗角shader
- 服务器能打开其他网站打不开,为什么有的网页打不开其他能打开(浏览器网页打不开的原因有哪些)...
- 【最新】国内外激光雷达盘点及核心产品介绍
- 人脸识别帧数太低的解决方法
- 自制homekit开关
- 小米手机显示无法连接服务器错误代码,来电转接出现连接问题或MMI码无效的解决方法...
- (附源码)ssm停车位共享系统app 毕业设计 041534
- 第九届蓝桥杯JavaB组省赛真题
- Avalanche:公链中的隐形冠军
- HTML的相对位置和绝对位置
- XML的解析方法(如何解析XML)
- 计算机打音乐两只老虎,两只老虎(音乐、汇编程序)
- python读docx文件_python-docx文件定位读取过程(尝试替换)
热门文章
- php短信接口文件放在哪,php短信接口
- SQL关于Date类型时间段查询优化(时间跨度稍长)(记一次自己工作开发中遇到的SQL优化经验)
- Java定义获取类属性名方法减少hardcode代码
- 【autoware高精度地图模块】
- 简述脉冲神经网络SNN:下一代神经网络,及其仿真工具
- 《DARTS+:Improved Differentiable Architecture Search with Early Stopping》论文笔记
- 【博客650】irate适用于绘制细粒度灵敏图,但警惕用于告警
- git删除远程分支和tag相关命令
- java快速排序详解
- oracle去重手段