我正在从 JSON 文件导入数据,它的日期格式如下 1/7/11 9:15
为了接受这个日期,最好的变量类型/格式是什么?如果不是,那么完成这项任务的最有效方法是什么?
谢谢。
我正在从 JSON 文件导入数据,它的日期格式如下 1/7/11 9:15
为了接受这个日期,最好的变量类型/格式是什么?如果不是,那么完成这项任务的最有效方法是什么?
谢谢。
“为了接受这个日期,最好的变量类型/格式是什么?”
日期时间字段。
“如果不是,完成这项任务的最有效方法是什么?”
您应该使用Python 内置库中的方法:datetime.strptime
datetime
>>> from datetime import datetime
>>> import json
>>> json_datetime = "1/7/11 9:15" # still encoded as JSON
>>> py_datetime = json.loads(json_datetime) # now decoded to a Python string
>>> datetime.strptime(py_datetime, "%m/%d/%y %I:%M") # coerced into a datetime object
datetime.datetime(2011, 1, 7, 9, 15)
# Now you can save this object to a DateTimeField in a Django model.
如果您查看https://docs.djangoproject.com/en/dev/ref/models/fields/#datetimefield,它会说 django 使用了http://docs.python 中记录的 python 日期时间库。 org/2/library/datetime.html。
这是一个工作示例(带有许多调试打印和分步说明:
from datetime import datetime
json_datetime = "1/7/11 9:15"
json_date, json_time = json_datetime.split(" ")
print json_date
print json_time
day, month, year = map(int, json_date.split("/")) #maps each string in stringlist resulting from split to an int
year = 2000 + year #be ceareful here! 2 digits for a year may cause trouble!!! (could be 1911 as well)
hours, minutes = map(int, json_time.split(":"))
print day
print month
print year
my_datetime = datetime(year, month, day, hours, minutes)
print my_datetime
#Generate a json date:
new_json_style = "{0}/{1}/{2} {3}:{4}".format(my_datetime.day, my_datetime.month, my_datetime.year, my_datetime.hour, my_datetime.minute)
print new_json_style