有时候使用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查询响应结果中获取某些字段的值相关推荐

  1. GridView控件RowDataBound事件中获取列字段值的几种途径

    前台: <asp:TemplateField HeaderText="充值总额|账号余额"><ItemTemplate><asp:Label ID=& ...

  2. mysql 查询指定字段数据_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

  3. 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?

    编辑器加载中... 查询一个表中所有id字段在另一个表中对应值的SQL语句怎么写?多表联结查询:select rbd.RBDID, rbd.ProductCode,p.ProductCnName,p. ...

  4. java 获取继承字段_java – 从类中获取所有字段(甚至是私有的和继承的)

    我在做大学项目. 我需要从类中获取所有字段.甚至私人和继承.我试图获取所有声明字段,然后投射到超类并重复. 我的代码片段: private void listAllFields(Object obj) ...

  5. mysql select 指定列_MySQL使用select语句查询指定表中指定列(字段)的数据

    本文介绍mysql数据库中执行select查询语句,查询指定列的数据,即指定字段的数据. 再来回顾一下sql语句中的select语句的语法: select 语句的基本语法: select from w ...

  6. Entity Framwork(EF) 7——在Controller内获取指定字段的值

    Entity Framwork(EF) 7--在Controller内获取指定字段的值 一.开发背景: 在用户登录的时候,验证用户和密码是否正确.验证通过后将用户名和用户ID保存下来以便后续数据更新时 ...

  7. 自动装配——@Autowired 构造器,参数,方法,属性都是从容器中获取参数组件的值||自定义组件想要使用Spring容器底层的一些组件 ApplicationContext,BeanFactory

    @Autowired:构造器,参数,方法,属性:都是从容器中获取参数组件的值 * 1).[标注在方法位置]:@Bean+方法参数:参数从容器中获取;默认不写@Autowired效果是一样的:都能自动装 ...

  8. asp.net mvc 如何在View中获取Url参数的值

    如果url是 /home/index?id=3 直接Request就ok. 但是如果路由设定为:{controller}/{action}/{id} url是 /home/index/3    这时想 ...

  9. map中获取数组_如何从php多维数组中获取特定的键值?

    点击蓝字关注我们!每天获取最新的编程小知识! 源 / php中文网      源 / www.php.cn 在这篇文章中,我们将给大家介绍如何在php中从多维数组中获取特定的键值数组.这里我们将使用a ...

  10. 【236期】ElasticSearch 进阶:一文全览各种 ES 查询在 Java 中的实现

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜,留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...

最新文章

  1. 深入理解 python 元类
  2. JdbcTemplate的CRUD操作
  3. Visual Studio 2013运行时卡顿 CPU占用超高的解决方法
  4. Leetcode记录
  5. 成功解决.append方法出现错误IndexError: list index out of range
  6. SAP CRM my task 6个roundtrip的原理讲解
  7. keyshot环境素材文件_KeyShot渲染,打光这么打,效果倍儿棒
  8. python报错ValueError: invalid literal for int() with base 10解决方法
  9. C# list 多条件排序
  10. 安卓9.0官方系统升级包_想升级鸿蒙系统都来看看!华为新系统升级名单曝光:有你手机吗?...
  11. 【BZOJ】【2626】JZPFAR
  12. 【网页模板】Bootstrap免费模板
  13. flutter 集成融云 sdk
  14. 室内设计数据手册pdf_室内设计资料集pdf下载-室内设计资料集电子版pdf高清扫描版-东坡下载...
  15. 这16个数据可视化案例,惊艳了全球数据行业
  16. 内存地址重映射的选项_ARM处理器重映射原理的分析与实现
  17. 帝国CMS灵动标签如何调用父子栏目连接和名称导航
  18. WSL挂载移动硬盘U盘
  19. 【Uni-App】点击分享,生成海报带二维码,保存到本地图片,写入文字
  20. 对象布局(JOL)、分配过程以及访问定位

热门文章

  1. 搭建一个简单的http服务器
  2. Java基础-JLable组件、文本框组件、JPanel轻量级容器、Swing事件处理三种方式、适配器
  3. CNN交叉熵损失函数
  4. 服务器进不了bios设置u盘启动不了系统还原,服务器进不了bios设置u盘启动
  5. 【Mongoose 7.x 中文文档】Schemas
  6. 数据库-存储过程(概念、优缺点、分类)
  7. [反编译U3D]Decompile Unity Resources
  8. java连接蓝牙原理流程_Bluetooth源码分析(三)蓝牙配对流程
  9. MySQL的ibdata1文件占用过大瘦身
  10. MultipartFile transferTo FileNotFoundException