Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >entity_addict | 像对象一样去操作字典

entity_addict | 像对象一样去操作字典

作者头像
用户9897904
发布于 2022-07-14 10:28:01
发布于 2022-07-14 10:28:01
24100
代码可运行
举报
文章被收录于专栏:PipelinePipeline
运行总次数:0
代码可运行

大家早上好

今天要给大家分享的是一个python的库

要不是周末在写工蜂的API的时候突然需要用到addict这个库

我都差点忘了我写过的一个名为entity_addict的库

entity_addict是扩展了addict的部分功能之前是本想合并到addict上面的

但是作者建议是单独作为一个新的python包

从而保持addict的简单和纯粹

(addict核心代码不超过200行)

addict

在讲entity_addict之前我们来看看addict

2.1k的star就可见它的优秀

addict的用法也简单,把一个字典传递给Dict对象后就可以像对象一样的去操作字典了

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> from addict import Dict
>>> body = Dict()
>>> body.query.filtered.query.match.description = 'addictive'
>>> body.query.filtered.filter.term.created_by = 'Mats'
body = {
    'query': {
        'filtered': {
            'query': {
                'match': {'description': 'addictive'}
            },
            'filter': {
                'term': {'created_by': 'Mats'}
            }
        }
    }
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
>>> from addict import Dict
>>> mapping = Dict()
>>> mapping.a.b.c.d.e = 2
>>> mapping
{'a': {'b': {'c': {'d': {'e': 2}}}}}

从上面的例子就可以看到,真好用!

entity_addict

现在我们再来看entity_addict

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from entity_addict import entity_addict
    
@entity_addict
def get_dict_data_a():
    return {"key_name": "value"}

data = get_dict_data_a()
print(data.key_name)

@entity_addict
def get_dict_data_b():
    return [{"key_name": "value"}]

for data in get_dict_data_b():
    print(data.key_name)
    
@entity_addict
def get_dict_data_c():
    return [
        {"key_name": "value"},
        {"key": [{"sub_key1": 1}, {"sub_key2": 2}]}
    ]
data = get_dict_data_c()
print(data[1].key[1].sub_key2)

addict它不能支持列表中的字典,也不能支持多层嵌套中的列表字典

我们可以在日常工作中很多地方都能用到addict或者entity_addict毕竟只要跟字典打交道都可以用的上它

赶紧收藏起来把

好了今天的分享就到这了

我们下次再见

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Pipeline 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python的addict模块
addict is a Python module that gives you dictionaries whose values are both gettable and settable using attributes, in addition to standard item-syntax.This means that you don't have to write dictionaries like this anymore:
狼啸风云
2020/02/11
1.8K0
[692]python操作Elasticsearch
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。下面介绍了利用Python API接口进行数据查询,方便其他系统的调用。
周小董
2022/04/13
1.7K0
python操作elasticsearch
参考:https://www.cnblogs.com/clonen/p/6674888.html
西西嘛呦
2021/10/25
1.3K0
Python数据库操作之pymysql模块和sqlalchemy模块
参考博客https://www.cnblogs.com/aylin/p/5770888.html
林清猫耳
2018/10/09
9710
Python数据库操作之pymysql模块和sqlalchemy模块
Python elasticsearch-py类库基础用法
https://files.pythonhosted.org/packages/f5/71/45d36a8df68f3ebb098d6861b2c017f3d094538c0fb98fa61d4dc43e69b9/urllib3-1.26.2-py2.py3-none-any.whl#sha256=d8ff90d979214d7b4f8ce956e80f4028fc6860e4431f731ea4a8c08f23f99473
授客
2024/01/29
3600
好玩的ES--第二篇之高级查询,索引原理和分词器
ES中提供了一种强大的检索数据方式,这种检索方式称之为Query DSL ,Query DSL是利用Rest API传递JSON格式的请求体(Request Body)数据与ES进行交互,这种方式的丰富查询语法让ES检索变得更强大,更简洁。
大忽悠爱学习
2022/05/10
1.4K0
好玩的ES--第二篇之高级查询,索引原理和分词器
Python Elasticsearch api
ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。下面介绍了利用Python API接口进行数据查询,方便其他系统的调用。
py3study
2020/02/21
4.5K0
Python Elasticsearch api
python操作ES数据库「建议收藏」
一个ES集群可以包含多个索引(数据库),每个索引又包含了很多类型(表),类型中包含了很多文档(行),每个文档使用 JSON 格式存储数据,包含了很多字段(列)
全栈程序员站长
2022/09/05
1.4K0
【RAG落地利器】向量数据库Weaviate部署与使用教程
Weaviate 是一种开源的向量搜索引擎数据库,允许以类属性的方式存储 JSON 文档,并将机器学习向量附加到这些文档上,以在向量空间中表示它们。Weaviate 支持语义搜索、问答提取、分类等功能,并且可以通过 GraphQL-API 轻松访问数据。
致Great
2025/01/23
1.6K0
【RAG落地利器】向量数据库Weaviate部署与使用教程
Python Elasticsearch DSL 查询、过滤、聚合操作
Index:Elasticsearch用来存储数据的逻辑区域,它类似于关系型数据库中的database 概念。一个index可以在一个或者多个shard上面,同时一个shard也可能会有多个replicas。
程序员小新
2022/01/06
3.8K0
RAG/KAG
浏览器输入 http://127.0.0.1:8887, web界面,点击Chinese进入中文界面。
算法之名
2025/02/06
3330
RAG/KAG
大数据预测CSDN2018博客之星评选结果
闲话不多说,我们直接用数据说话。(因为绝大多数同学都只是关心一下结果,后面再给大家演示数据是怎么得到的) 按照CSDN的要求:
我就是马云飞
2018/12/27
7030
大数据预测CSDN2018博客之星评选结果
Django(三):HttpReques
  当一个请求连接进来时,django会创建一个HttpRequest对象来封装和保存所有请求相关的信息,并且会根据请求路由载入匹配的视图函数。每个请求的视图函数都会返回一个HttpResponse。
py3study
2020/01/19
6870
Django(三):HttpReques
将微软GraphRAG输出到Neo4J并使用Langchain或LlamaIndex实现本地和全局检索
微软的 GraphRAG 实现最近获得了极大的关注。在上一篇博文中,我讨论了如何构建图形,并探讨了研究论文中强调的一些创新方面。从高层次来看,GraphRAG 库的输入是包含各种信息的源文件。这些文档使用大语言模型(LLM)进行处理,以提取文档中出现的实体及其关系的结构化信息。提取的结构化信息随后被用于构建知识图谱。
AgenticAI
2025/03/18
4660
将微软GraphRAG输出到Neo4J并使用Langchain或LlamaIndex实现本地和全局检索
Python 读取 JSON 数据的骚操作
你想读写 JSON(JavaScript Object Notation) 编码格式的数据。
Python知识大全
2020/02/21
2.2K0
误操作怎么办?试试这个神器-Log Miner
LogMiner可以用来分析在线/redo日志,也可以用来分析离线日志文件/归档日志,是由一组PL/SQL包和一些动态视图组成,而且是免费的。
bisal
2021/09/06
1K0
误操作怎么办?试试这个神器-Log Miner
MMCV之Config注释详解
对 MMCV Config 类的结构记录一下,这个类主要是将 python dict 或者 json/yaml 文件中的 dict 对象转化成方便操作的 dict 对象,有些细节写的还是很好的,本文档用的 MMCV 的版本为 1.3.5
棒棒鸡不棒
2023/05/10
9390
3.ElasticSearch分布式数据分析引擎基础概念与使用
描述: ES是支持以及HTTP协议进行REST风格接口访问,一般得我们需要有个工具帮我们发送http请求,该工具常见的是curl英 [kɜːl]、Head插件、Kibana DeveloperTool软件等。
全栈工程师修炼指南
2022/09/29
2K0
3.ElasticSearch分布式数据分析引擎基础概念与使用
Pandas分组与聚合1.分组 (groupby)一、GroupBy对象:DataFrameGroupBy,SeriesGroupBy二、GroupBy对象支持迭代操作三、GroupBy对象可以转换成
文章来源:Python数据分析 1.分组 (groupby) 对数据集进行分组,然后对每组进行统计分析 SQL能够对数据进行过滤,分组聚合 pandas能利用groupby进行更加复杂的分组运算
Python攻城狮
2018/08/23
24.4K0
Pandas分组与聚合1.分组 (groupby)一、GroupBy对象:DataFrameGroupBy,SeriesGroupBy二、GroupBy对象支持迭代操作三、GroupBy对象可以转换成
Python 读取 JSON 数据的骚操作
你想读写 JSON(JavaScript Object Notation) 编码格式的数据。
数据森麟
2020/02/24
3.2K0
推荐阅读
相关推荐
Python的addict模块
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验