【发布时间】:2021-12-23 23:22:27
【问题描述】:
我正在做一个项目,当用户提到特定的日期范围时,会打印相应的数据。当提到特定日期时,该页面通过输入类型日期从用户那里获取输入,日期的值传递给user_input_date_to 和user_input_date_to。但是当我执行时,我收到了错误 ValueError at / time data '' does not match format '%Y-%m-%d'
我的观点文件
def indexview(request):
url=requests.get('https://data.covid19india.org/v4/min/timeseries.min.json')
json_data=url.json()
user_input_state=''
user_input_date_from=''
user_input_date_to=''
user_data_type=''
user_required_type=''
if request.method == 'POST':
user_input_state=request.POST.get('state')
x=request.POST['date_from']
user_input_date_to=request.POST['date_to']
user_data_type=request.POST.get('data_period')
user_required_type=request.POST.get('required_type')
#To store dates list
start_date =user_input_date_from
end_date = user_input_date_to
start_date_object = dt.datetime.strptime(start_date,"%Y-%m-%d").date()
end_date_object = dt.datetime.strptime(end_date,"%Y-%m-%d").date()
days = end_date_object - start_date_object
dates=[]
otp=[]
for i in range(days.days+1):
dates.append(str(start_date_object+dt.timedelta(days=i)))
for i in dates:
try:
otp.append(json_data[user_input_state]['dates'][i][user_data_type][user_required_type])
except KeyError:
otp.append(0)
dict_pass={
'dates':dates,
'otp':otp
}
return render(request,'index.html',dict_pass)
HTML 日期表单
<input type="date" name="date_from"><br>
<input type="date" name="date_to">
【问题讨论】:
-
您似乎将一个空字符串传递给
datetime.strptime。您确定在 JSON 中定义了日期/时间吗? -
函数
user_input_date_from或user_input_date_to分别分配给start_date和end_date但未在给定代码中调用(即,最后缺少())。请更改此设置,看看是否可以解决问题。 -
@MrFuppes @unityJarvis 当我通过 ``` user_input_date_from 或 user_input_date_to='2021-11-10' (一些随机日期)``` 并且如果我评论 ``` user_input_date_to=request.POST[ 'date_to'] user_data_type=request.POST.get('data_period') ``` 那么代码正在运行,但无法找出问题所在
-
您可以提供整个错误跟踪,尤其是包含错误的行
标签: python json django api datetime