小编pet*_*ush的帖子

除了某些字段外,如何检查2个dicts是否相等?

有两个词:旧的和更新的.我想,以检查它们是否相等,除了status,latitudelongitude键.

assert old_dict['status'] != updated_dict['status']
assert old_dict['latitude'] != updated_dict['latitude']
assert old_dict['longitude'] != updated_dict['longitude']

for field in ('status', 'latitude', 'longitude'):
    updated_dict.pop(field)
    old_dict.pop(field)

assert old_dict == updated_dict
Run Code Online (Sandbox Code Playgroud)

什么是pythonic方式这样做?

python dictionary python-3.x

10
推荐指数
1
解决办法
665
查看次数

带有 f 字符串的花括号 - ValueError:在字符串格式说明符中不允许符号

以下代码:

a = 0
b = f'{"c": {a}}'
Run Code Online (Sandbox Code Playgroud)

抛出错误:ValueError: Sign not allowed in string format specifier 如何解决?

python string python-3.x

8
推荐指数
1
解决办法
5810
查看次数

如何从没有None字段的类中创建字典?

我有以下数据类:

@dataclass
class Image:
    content_type: str
    data: bytes = b''
    id: str = ""
    upload_date: datetime = None
    size: int = 0

    def to_dict(self) -> Dict[str, Any]:
        result = {}
        if self.id:
            result['id'] = self.id
        if self.content_type:
            result['content_type'] = self.content_type
        if self.size:
            result['size'] = self.size
        if self.upload_date:
            result['upload_date'] = self.upload_date.isoformat()
        return result
Run Code Online (Sandbox Code Playgroud)

有什么方法可以简化to_dict方法吗?我不想使用列出所有字段if

python algorithm dictionary python-3.x

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

如何使用数据类生成字段值?

我有以下课程:

class WordItem:
    def __init__(self, phrase: str, word_type: WORD_TYPE):
        self.id = f'{phrase}_{word_type.name.lower()}'
        self.phrase = phrase
        self.word_type = word_type
        @classmethod

    def from_payload(cls, payload: Dict[str, Any]) -> 'WordItem':
        return cls(**payload)
Run Code Online (Sandbox Code Playgroud)

如何将此类重写为数据类

具体来说,如何id宣布该领域?它具有生成的值,而不是代码创建实例将提供的字段.

python python-3.7 python-dataclasses

3
推荐指数
1
解决办法
320
查看次数

如何使用sqlalchemy创建ASC/DESC索引?

我有下表声明

from gino import Gino

db = Gino()

class DatasetUpdateModel(db.Model):
    __tablename__ = "dataset_updates"

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    dataset_id = db.Column(db.Integer, nullable=False)
    created_at = db.Column(db.DateTime(timezone=True))

    __table_args__ = (
        db.Index(
            "dataset_updates_dataset_id_created_at_idx",
            "dataset_id",
            "created_at",
        ),
    )
Run Code Online (Sandbox Code Playgroud)

我需要创建以下索引:

在 dataset_updates 上创建索引(dataset_id,created_at DESC);

如何指定DESC订单?

python sql sqlalchemy python-3.x

3
推荐指数
1
解决办法
1643
查看次数