Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在MongoDB中以dd/mm/yyyy的形式存储和检索日期?_Python_Mongodb_Date_Datetime - Fatal编程技术网

Python 如何在MongoDB中以dd/mm/yyyy的形式存储和检索日期?

Python 如何在MongoDB中以dd/mm/yyyy的形式存储和检索日期?,python,mongodb,date,datetime,Python,Mongodb,Date,Datetime,我正在使用pandas将txt文件转换为csv,转换后的csv中只有很少的列进入MongoDB,最少有1000行 其中一个字段是dd.mm.yyyy格式的日期。我希望它以任何方式存储在MongoDB中,以便能够基于日期(小于/大于日期)进行查询,并以与dd.mm.yyyy相同的格式检索记录(Mongo文档)到python代码 db.mydata.insert({ name: 'Bob', birth: '12.03.1995', language: [ 'E

我正在使用pandas将txt文件转换为csv,转换后的csv中只有很少的列进入MongoDB,最少有1000行

其中一个字段是dd.mm.yyyy格式的日期。我希望它以任何方式存储在MongoDB中,以便能够基于日期(小于/大于日期)进行查询,并以与dd.mm.yyyy相同的格式检索记录(Mongo文档)到python代码

    db.mydata.insert({
     name: 'Bob',
     birth: '12.03.1995',
     language: [ 'English', 'French', 'Mandrin']            
   })

我是python和MongoDB的初学者。请引导我

MongoDB使用BSON存储数据,pymongo在保存到MongoDB时会自动将python datetime对象传输到BSON,然后您可以使用过滤器查询MongoDB

请注意,文档可以包含本机Python类型(如 datetime.datetime实例),将自动转换为 和相应的BSON类型

所以,您只需要在datetime类型和string类型之间来回转换

使用这两个函数,您可以在官方python手册中查看:

该文档说明了应使用的参数/格式

假设您使用的是Python2.7,一些示例将帮助您改进:

>>> original_date_string = '22.12.2015'
>>> print type(original_date_string)

# Your original data is a string
<type 'str'>

>>> import datetime
>>> python_date_object_for_insert_mongo = datetime.datetime.strptime(original_date_string, '%d.%m.%Y')
>>> print python_date_object_for_insert_mongo

# transfer to datetime object use datetime.datetime.strptime()
# the second argument is the format of your original data 
2015-12-22 00:00:00

>>> print type(python_date_object_for_insert_mongo)

# see, it's a native python datetime object
<type 'datetime.datetime'>


# when you retrived data from mongo db, it will give you native datime object, too:
>>> python_date_object_retrive_from_mongo = python_date_object_for_insert_mongo

# so we use strftime to transfer back from datetime to string
>>> transfer_to_original_format = datetime.datetime.strftime(python_date_object_retrive_from_mongo, '%d.%m.%Y')

# check it out
>>> print transfer_to_original_format
22.12.2015
>>> print type(transfer_to_original_format)
<type 'str'>
>>>
原始日期字符串='22.12.2015' >>>打印类型(原始日期字符串) #原始数据是一个字符串 >>>导入日期时间 >>>python_date_object_for_insert_mongo=datetime.datetime.strtime(原始日期字符串,'%d.%m.%Y')) >>>打印python\u日期\u对象\u以插入\u mongo #使用datetime.datetime.strptime()传输到datetime对象 #第二个参数是原始数据的格式 2015-12-22 00:00:00 >>>打印类型(python\u日期\u对象\u用于插入\u mongo) #看,这是一个本机python datetime对象 #当您从mongo db检索数据时,它也将为您提供本机datime对象: >>>python\u date\u object\u retrieve\u from\u mongo=python\u date\u object\u for\u insert\u mongo #因此,我们使用strftime将datetime转换回字符串 >>>转换为原始格式=datetime.datetime.strftime(python\u date\u object\u retrive\u from\u mongo,“%d.%m.%Y”) #看看 >>>打印传送到原始格式 22.12.2015 >>>打印类型(转换为原始格式) >>>
我刚刚意识到我们可以在Mongo中存储Python本机类型。非常感谢你这么好的解释。