Объект типа none не имеет атрибута 'replace'
Я пытаюсь заменить None
на 0
, но получаю ошибку, так как у типа object нет атрибута 'replace'. Вот что я пробовал
views.py:
def Activity(UserID):
cursor = connection.cursor()
cursor.execute('EXEC [dbo].[sp_GetCurrentRunningActivityAudit] @UserId=%s',(UserID,))
result_set =cursor.fetchall()
data = []
for row in result_set:
TaskId = row[0]
data.append({
'TaskId':row[0],
'TaskName' : row[1],
'Source' : row[2],
'Requester' : row[3].replace('None', '0') if row[3] == None else row[3] ,
'type' : row[4],
'IsActive':GetCurrentSubTaskSTatus(TaskId),
})
print(data)
return Response(data[0], status=status.HTTP_200_OK)
None нет строки с именем 'None', поэтому она не работает
row[3].replace('None', '0') if row[3] == None else row[3]
Размышляйте об этом:
if row[3] == None:
row[3].replace('None', '0')
Если row[3]
является None
, то как он может быть str
ингом? И как она может содержать 'None'
?
Вы должны заменить эту часть на следующую:
'0' if row[3] == None else row[3]
Чтобы лучше понять вашу проблему, я бы предложил вам прочитать следующее:
replace - это метод для строк. None не является строкой, это объект NoneType.
Вы можете попробовать следующий код для вашего случая:
'Requester' : row[3] or '0',
Будет использовано значение row[3], если оно не None. В противном случае будет использован '0'