小编egv*_*gvo的帖子

pydantic中有post_load吗?

之前我将Marshmallow库与 Flask 一起使用。前段时间我尝试过 FastAPI 和Pydantic。乍一看pydantic似乎相似,masrhmallow但仔细观察却有所不同。对我来说,它们之间的主要区别是来自marshmallow. 我在 中找不到任何类似的东西pydantic

post_load是后处理方法的装饰器。使用它我可以自己处理返回对象,可以做任何我想做的事情:

class ProductSchema(Schema):
    alias = fields.Str()
    category = fields.Str()
    brand = fields.Str()

    @post_load
    def check_alias(self, params, **kwargs):
        """One of the fields must be filled"""
        if not any([params.get('alias'), params.get('category'), params.get('brand')]):
            raise ValidationError('No alias provided', field='alias')
        return params
Run Code Online (Sandbox Code Playgroud)

此外它不仅用于验证。代码示例仅供直观理解,请勿分析,我刚刚发明的。

post_load所以我的问题是: in是否有类似的东西pydantic

python pydantic

11
推荐指数
1
解决办法
9755
查看次数

mongodb java $in 使用 $regex 进行查询

我正在尝试用 mongo+java 编写$in查询$regex。它在 mongo shell 中也不起作用。我的意思是我没有得到任何结果,但也没有查询解析错误。这是我从 Java 调试器在我所说的行得到的最终查询collection.find(finalQuery)

{"$and": [ 
    {"$or": [
        {"country": "united states"}
    ]}, 
    {"businesses": {
        "$in": [
            {"$regex": "^.*cardinal.*health.*$"},
            {"$regex": "^.*the.*hartford.*$"}
        ]
    }}
]}
Run Code Online (Sandbox Code Playgroud)

上述查询的 Java 代码片段:

{"$and": [ 
    {"$or": [
        {"country": "united states"}
    ]}, 
    {"businesses": {
        "$in": [
            {"$regex": "^.*cardinal.*health.*$"},
            {"$regex": "^.*the.*hartford.*$"}
        ]
    }}
]}
Run Code Online (Sandbox Code Playgroud)

但是,以下查询在 mongo shell 中有效,但我不知道如何将其写入 java:

{"registering_organization": {
    "$in": [
        /^.*cardinal.*health.*$/,
        /^.*the.*hartford.*$/
    ]
}}
Run Code Online (Sandbox Code Playgroud)

如果我们尝试将正则表达式定义为字符串,Java 代码会在正则表达式周围添加双引号。

java regex mongodb

5
推荐指数
1
解决办法
2万
查看次数

Telegram 中可以通过按钮复制到剪贴板吗?

我正在编写一个电报机器人,它将与用户通信并向他发送 url 结果。我想实现内联按钮,该按钮将为copy to clipboard用户提供功能。我想要它,因为通过上下文菜单复制文本有点长而且不那么直观。

据我了解,我无法通过服务器端代码(通过Python)来做到这一点。所以我认为唯一的解决方案是使用 Telegram 功能(机器人的 API 和 Telegram 本身)。但我找不到任何。

我在 stackoverflow 上只找到了这个答案。它描述了长按Mono字体可以复制文本。它确实:

但在我看来,没有办法使链接可复制 - 它总是变成链接。

有人能建议一些有用的东西吗?

python telegram telegram-bot telegram-api

5
推荐指数
1
解决办法
1万
查看次数

Telethon 中有机器人菜单吗?

我正在使用Telethon构建一个应用程序,并且即将完成。现在还有一些美丽的东西需要制作,我发现互联网(以及文档)中没有很好的解释如何制作机器人的菜单。

一两年前,我用TeleBot构建了另一个机器人,它使用types.ReplyKeyboardMarkup. 我可以看到 Telethon 文档是如何提及的,ReplyKeyboardMarkup但我仍然无法完成机器人的菜单。

只是为了清楚起见,我想做的事情如下所示:

python telegram telegram-bot telethon

2
推荐指数
1
解决办法
2029
查看次数