Tôi muốn có thể tạo đối tượng datetime với datetime.datetime.now()
PyYAML. Thật dễ dàng để gọi một số chức năng:Cách tạo đối tượng datetime với PyYAML
>>> y = """#YAML
... description: Something
... ts: !!python/object/apply:time.time []"""
>>> yaml.load(y)
{'description': 'Something', 'ts': 1289955567.940973}
>>>
Tuy nhiên, tôi không thể tìm ra cách để có được datetime.now()
. Tôi đã thử nhiều hoán vị với các cuộc gọi đến đó bằng cách sử dụng python yaml tags khác nhau.
Những tất cả thất bại:
tests = [
'dt: !!python/object:datetime.datetime.now []',
'dt: !!python/object/new:datetime.datetime.now []',
'dt: !!python/object/apply:datetime.datetime.now []',
]
for y in tests:
try:
print yaml.load(y)
except Exception, err:
print '==>', err
Rất đẹp. Tôi đồng ý rằng đây là trường hợp sử dụng hơi phức tạp, nhưng giải pháp của bạn trông giống như cách dễ nhất để thực hiện. Đối với ngữ cảnh, tôi đang điều tra bằng cách sử dụng YAML để tạo ra dữ liệu thử nghiệm sẽ được tải thông qua Django. Có dữ liệu được tạo khi tệp được tải sẽ là một lợi ích rất lớn cho nhiều thử nghiệm. Cảm ơn câu trả lời! – brianz
fwiw, với 'apply' được loại bỏ trong python 3 ví dụ không còn hoạt động nữa. Điều đó nói rằng, tôi không thực sự tìm cách để làm điều này chỉ vấp trên câu trả lời này trong khi làm một số nghiên cứu :) (wow 'pyyaml' là điên!) –