簡體   English   中英

當我將整個字典打印為字符串時,Python中字典中的datetime.date值會更改格式

[英]datetime.date values in a dictionary in Python change format when I print the whole dictionary as a string

我有一本字典,其中的鍵是字符串,值是datetime.dates。 如果我在字典中將值打印為字符串之前,則將其用連字符分隔。 如果我從字典中訪問值並以字符串形式打印,則將其用連字符分隔。 如果我打印整個字典(是否為字符串),則該值為逗號分隔的日期。

我已經知道我可以通過在鍵/值上進行for循環並依次打印每個鍵/值來解決此問題,但是我想了解發生了什么。 為什么會這樣? 該值本身是正確的,但是在打印字典時似乎改變了格式。 我正在使用Python 2.7。

謝謝! (第一個問題,請原諒不良禮節)

from datetime import datetime

date1 = '2014-07-09'

datesdict = {}

datetimeparse = datetime.strptime(date1, '%Y-%m-%d')
dateparse = datetime.date(datetimeparse)
datesdict['mykey'] = dateparse

print date1
print datetimeparse
print str(datetimeparse)
print dateparse
print str(dateparse)
print datesdict['mykey']
print str(datesdict['mykey'])  # <- I realise I am labouring the point a bit here
print datesdict
print str(datesdict)

此代碼輸出:

2014-07-09
2014-07-09 00:00:00
2014-07-09 00:00:00
2014-07-09
2014-07-09
2014-07-09 # <- this should be *exactly* what is printed in the print dict command
2014-07-09
{'mykey': datetime.date(2014, 7, 9)}  # <- Why comma separated? Looking for an
{'mykey': datetime.date(2014, 7, 9)}  # <- explanation rather than a solution, please.

正如您和jonatan所指出的 ,字典中的日期值將使用repr()而非str()打印,其結果分別為datetime.date(2014, 7, 9) 2014,7,9 datetime.date(2014, 7, 9)2014-07-09

print repr(datesdict['mykey']) #datetime.date(2014, 7, 9)
print  str(datesdict['mykey']) #2014-07-09

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM