Python 添加';0';在使用to_pydatetime()的天数和月份之前

Python 添加';0';在使用to_pydatetime()的天数和月份之前,python,pandas,datetime,bucket,Python,Pandas,Datetime,Bucket,我将数据存储在S3存储桶中,该存储桶使用“yyyy/MM/dd”格式存储每个日期的文件,如以下示例S3a路径:S3a://mybucket/data/2018/07/03。这些存储桶中的文件采用json.gz格式,我希望每天将所有这些文件导入spark数据帧。之后,我想通过for循环将这些spark dfs提供给一些编写的代码: for date in date_range: s3a = 's3a://mybucket/data/{}/{}/{}/*.json.gz'.format(da

我将数据存储在S3存储桶中,该存储桶使用“yyyy/MM/dd”格式存储每个日期的文件,如以下示例S3a路径:
S3a://mybucket/data/2018/07/03。
这些存储桶中的文件采用
json.gz
格式,我希望每天将所有这些文件导入spark数据帧。之后,我想通过for循环将这些spark dfs提供给一些编写的代码:

for date in date_range:
    s3a = 's3a://mybucket/data/{}/{}/{}/*.json.gz'.format(date.year, date.month, date.day)
    df = spark.read.format('json').option("header", "true").load(s3a)
    # Execute code here
为了读取数据,我尝试设置
date\u范围的格式,如下所示:

from datetime import datetime
import pandas as pd
def return_date_range(start_date, end_date):
    return pd.date_range(start=start_date, end=end_date).to_pydatetime().tolist()

date_range = return_date_range(start_date='2018-03-06', end_date='2018-03-12')
date_range

[datetime.datetime(2018, 3, 6, 0, 0),
 datetime.datetime(2018, 3, 7, 0, 0),
 datetime.datetime(2018, 3, 8, 0, 0),
 datetime.datetime(2018, 3, 9, 0, 0),
 datetime.datetime(2018, 3, 10, 0, 0),
 datetime.datetime(2018, 3, 11, 0, 0),
 datetime.datetime(2018, 3, 12, 0, 0)]
[datetime.datetime(2018, 03, 06, 0, 0),
 datetime.datetime(2018, 03, 07, 0, 0),
 datetime.datetime(2018, 03, 08, 0, 0),
 datetime.datetime(2018, 03, 09, 0, 0),
 datetime.datetime(2018, 03, 10, 0, 0),
 datetime.datetime(2018, 03, 11, 0, 0),
 datetime.datetime(2018, 03, 12, 0, 0)]
问题是
pydatetime()
返回的日期和月份没有“0”。如何确保我的代码返回带有“0”的值列表,如下所示:

from datetime import datetime
import pandas as pd
def return_date_range(start_date, end_date):
    return pd.date_range(start=start_date, end=end_date).to_pydatetime().tolist()

date_range = return_date_range(start_date='2018-03-06', end_date='2018-03-12')
date_range

[datetime.datetime(2018, 3, 6, 0, 0),
 datetime.datetime(2018, 3, 7, 0, 0),
 datetime.datetime(2018, 3, 8, 0, 0),
 datetime.datetime(2018, 3, 9, 0, 0),
 datetime.datetime(2018, 3, 10, 0, 0),
 datetime.datetime(2018, 3, 11, 0, 0),
 datetime.datetime(2018, 3, 12, 0, 0)]
[datetime.datetime(2018, 03, 06, 0, 0),
 datetime.datetime(2018, 03, 07, 0, 0),
 datetime.datetime(2018, 03, 08, 0, 0),
 datetime.datetime(2018, 03, 09, 0, 0),
 datetime.datetime(2018, 03, 10, 0, 0),
 datetime.datetime(2018, 03, 11, 0, 0),
 datetime.datetime(2018, 03, 12, 0, 0)]

这是一种使用
.strftime(“%Y/%m/%d”)

Ex:

from datetime import datetime
import pandas as pd
def return_date_range(start_date, end_date):
    return pd.date_range(start=start_date, end=end_date).strftime("%Y/%m/%d").tolist()

date_range = return_date_range(start_date='2018-03-06', end_date='2018-03-12')
print(date_range)
['2018/03/06',
 '2018/03/07',
 '2018/03/08',
 '2018/03/09',
 '2018/03/10',
 '2018/03/11',
 '2018/03/12']
输出:

from datetime import datetime
import pandas as pd
def return_date_range(start_date, end_date):
    return pd.date_range(start=start_date, end=end_date).strftime("%Y/%m/%d").tolist()

date_range = return_date_range(start_date='2018-03-06', end_date='2018-03-12')
print(date_range)
['2018/03/06',
 '2018/03/07',
 '2018/03/08',
 '2018/03/09',
 '2018/03/10',
 '2018/03/11',
 '2018/03/12']


f's3a://mybucket/data/{date}/*.json.gz'
似乎更符合时宜这是否回答了您的问题?是的,我会删除它