[英]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.