有两个词:旧的和更新的.我想,以检查它们是否相等,除了status,latitude和longitude键.
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方式这样做?
以下代码:
a = 0
b = f'{"c": {a}}'
Run Code Online (Sandbox Code Playgroud)
抛出错误:ValueError: Sign not allowed in string format specifier
如何解决?
我有以下数据类:
@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。
我有以下课程:
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宣布该领域?它具有生成的值,而不是代码创建实例将提供的字段.
我有下表声明
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 ×5
python-3.x ×4
dictionary ×2
algorithm ×1
python-3.7 ×1
sql ×1
sqlalchemy ×1
string ×1