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 更新文章,每天进步一点点... ...
最新文章
- 深入理解 python 元类
- JdbcTemplate的CRUD操作
- Visual Studio 2013运行时卡顿 CPU占用超高的解决方法
- Leetcode记录
- 成功解决.append方法出现错误IndexError: list index out of range
- SAP CRM my task 6个roundtrip的原理讲解
- keyshot环境素材文件_KeyShot渲染,打光这么打,效果倍儿棒
- python报错ValueError: invalid literal for int() with base 10解决方法
- C# list 多条件排序
- 安卓9.0官方系统升级包_想升级鸿蒙系统都来看看!华为新系统升级名单曝光:有你手机吗?...
- 【BZOJ】【2626】JZPFAR
- 【网页模板】Bootstrap免费模板
- flutter 集成融云 sdk
- 室内设计数据手册pdf_室内设计资料集pdf下载-室内设计资料集电子版pdf高清扫描版-东坡下载...
- 这16个数据可视化案例,惊艳了全球数据行业
- 内存地址重映射的选项_ARM处理器重映射原理的分析与实现
- 帝国CMS灵动标签如何调用父子栏目连接和名称导航
- WSL挂载移动硬盘U盘
- 【Uni-App】点击分享,生成海报带二维码,保存到本地图片,写入文字
- 对象布局(JOL)、分配过程以及访问定位
热门文章
- 搭建一个简单的http服务器
- Java基础-JLable组件、文本框组件、JPanel轻量级容器、Swing事件处理三种方式、适配器
- CNN交叉熵损失函数
- 服务器进不了bios设置u盘启动不了系统还原,服务器进不了bios设置u盘启动
- 【Mongoose 7.x 中文文档】Schemas
- 数据库-存储过程(概念、优缺点、分类)
- [反编译U3D]Decompile Unity Resources
- java连接蓝牙原理流程_Bluetooth源码分析(三)蓝牙配对流程
- MySQL的ibdata1文件占用过大瘦身
- MultipartFile transferTo FileNotFoundException