es查询响应结果中获取某些字段的值

命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

导读:本篇文章讲解 es查询响应结果中获取某些字段的值,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

        有时候使用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 jmespath


with 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)

运行结果:

es查询响应结果中获取某些字段的值

注意:使用json.load()时,会把文本中的fase、true直接变为False、True

参考博文:

python中jmespath库用法详解_IT之一小佬的博客-CSDN博客_jmespath python

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/142851.html

(0)

相关推荐

  • python Web自动化测试环境搭建selenium,webdriver–超简单

    导读:本篇文章讲解 python Web自动化测试环境搭建selenium,webdriver–超简单,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端笔记 2023年2月20日
    00
  • 利用宝塔配置jdk环境

    追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

    导读:本篇文章讲解 利用宝塔配置jdk环境,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端笔记 2023年4月6日
    00
  • MIPS实现分支(两种思路)

    追求适度,才能走向成功;人在顶峰,迈步就是下坡;身在低谷,抬足既是登高;弦,绷得太紧会断;人,思虑过度会疯;水至清无鱼,人至真无友,山至高无树;适度,不是中庸,而是一种明智的生活态度。

    导读:本篇文章讲解 MIPS实现分支(两种思路),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端笔记 2023年4月6日
    00
  • 【多线程,详细demo】Java多线程基础学习(一)

    人生之路不会是一帆风顺的,我们会遇上顺境,也会遇上逆境,在所有成功路上折磨你的,背后都隐藏着激励你奋发向上的动机,人生没有如果,只有后果与结果,成熟,就是用微笑来面对一切小事。

    导读:本篇文章讲解 【多线程,详细demo】Java多线程基础学习(一),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端笔记 2023年3月8日
    00
  • 【LeetCode】136.只出现一次的数字(三种解法)

    导读:本篇文章讲解 【LeetCode】136.只出现一次的数字(三种解法),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    2023年2月20日
    00
  • @Param注解的注意事项(转载)

    导读:本篇文章讲解 @Param注解的注意事项(转载),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端笔记 2023年2月20日
    00
  • Mysql数据库增删改查笔记

    没有人挡得住,你疯狂的努力进取。你可以不够强大,但你不能没有梦想。如果你没有梦想,你只能为别人的梦想打工筑路。

    导读:本篇文章讲解 Mysql数据库增删改查笔记,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端笔记 2023年4月16日
    00
  • 【Redis】BigKey问题

    命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

    导读:本篇文章讲解 【Redis】BigKey问题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端笔记 2023年5月24日
    00
  • 版本控制器Git的使用。

    导读:本篇文章讲解 版本控制器Git的使用。,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

    后端笔记 2023年2月28日
    00
  • 【GO】04_标识符规范

    命运对每个人都是一样的,不一样的是各自的努力和付出不同,付出的越多,努力的越多,得到的回报也越多,在你累的时候请看一下身边比你成功却还比你更努力的人,这样,你就会更有动力。

    导读:本篇文章讲解 【GO】04_标识符规范,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

    后端笔记 2023年5月24日
    00

发表回复

登录后才能评论