Я получаю это сообщение об ошибке:
AttributeError: 'str' object has no attribute 'get'
Я знаю, что именно мой json.dumps вызывает ошибку.Вот мой код:
from django.http import HttpResponse
import os
import datetime
import json
SUNDAY = 6
SATURDAY = 5
weekdayBookingTimes = ["10:00","10:30","11:00","11:30","12:00", "12:30", "13:00","13:30", "14:00", "14:30", "15:00", "15:30", "16:00", "16:30", "17:00", "17:30", "18:00"]
def sendBookingForDate(request):
dateToFetchBookings = request.GET.get('date','')
#Check if date is SUNDAY
if checkDayOfWeek(dateToFetchBookings) == SUNDAY:
pass
#Check if day is Saturday
elif checkDayOfWeek(dateToFetchBookings) == SATURDAY:
if os.path.isfile((dateToFetchBookings+".txt")):
pass #tbt
else:
createBookingsForSaturday(dateToFetchBookings)
#Check if day is normal day
else:
if os.path.isfile(dateToFetchBookings+'.txt'):
pass
else:
createBookingsForNormalDays(dateToFetchBookings)
with open('/home/MScissorss/mysite/mysite/'+dateToFetchBookings+'.txt') as f:
bookingsToSend = json.load(f)
#return HttpResponse(dateToFetchBookings)
return json.dumps(bookingsToSend)
def checkDayOfWeek(date):
tempDateStorage = date.split('-')
year = int(tempDateStorage[0])
month = int(tempDateStorage[1])
day = int(tempDateStorage[2])
return datetime.datetime(year,month,day).weekday()
def createBookingsForSaturday(date):
normalBookings = {}
for x in range(0,11):
normalBookings[x] = {"bookingTime":weekdayBookingTimes[x], "booked":"false", "bookieName":"", "bookieNumber":""}
with open('/home/MScissorss/mysite/mysite/'+date+'.txt', "w") as file:
file.write(json.dumps(normalBookings))
def createBookingsForNormalDays(date):
#Test data
bookings = {}
for x in range(0,17):
bookings[x] = {"bookingTime":weekdayBookingTimes[x], "booked":"false", "bookieName":"", "bookieNumber":""}
with open('/home/MScissorss/mysite/mysite/'+date+'.txt', "w") as file:
file.write(json.dumps(bookings))
Проверьте конец первой функции.Вот где я делаю возвращение.Я также подумал, что мой словарь был неправильно отформатирован, но я проверил, и он выглядит хорошо:
{
"0": {"bookingTime": "10:00", "booked": "false", "bookieName": "", "bookieNumber": ""},
"1": {"bookingTime": "10:30", "booked": "false", "bookieName": "", "bookieNumber": ""},
"2": {"bookingTime": "11:00", "booked": "false", "bookieName": "", "bookieNumber": ""},
"3": {"bookingTime": "11:30", "booked": "false", "bookieName": "", "bookieNumber": ""}
}
Возвращение, которое прокомментировано выше json.dumps, работает хорошо.Я не получаю ошибок при запуске этого.Любые идеи о том, в чем может быть проблема?
ОБНОВЛЕНИЕ - добавлен полный возврат
2018-11-15 23:53:05,718: Internal Server Error: /getBookings/
Traceback (most recent call last):
File "/home/MScissorss/.virtualenvs/django2/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/MScissorss/.virtualenvs/django2/lib/python3.7/site-packages/django/utils/deprecation.py", line 93, in __call__
response = self.process_response(request, response)
File "/home/MScissorss/.virtualenvs/django2/lib/python3.7/site-packages/django/middleware/clickjacking.py", line 26, in process_response
if response.get('X-Frame-Options') is not None:
AttributeError: 'str' object has no attribute 'get'