У меня возникли проблемы с формированием условия, чтобы проверить, является ли ответ на мой API null
с Python. Я использую модули Flask и SQLite3. Ниже приведен фрагмент одного из моих ресурсов.
class Sites(Resource):
def get(self, store):
print('Received a request at ADDRESS for Store ' + store )
conn = sqlite3.connect('store-db.db')
cur = conn.cursor()
res = cur.execute('SELECT * FROM Sites WHERE StoreNumber like ' + store)
for r in res:
if r == 'null':
return('No data', 404)
else:
column_names = ["StoreNumber", "Street", "StreetSecondary","City","State", "ZipCode", "ContactNumber", "XO_TN", "RelocationStatus", "StoreType", "Timezone"]
data = [r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10]]
datadict = {column_names[itemindex]:item for itemindex, item in enumerate(data)}
return(datadict, 200)
Если я сделаю запрос к сайту, который не существует, возвращается значение null
, но ни одна из моих попыток поймать это не удалась, поэтому я задаюсь вопросом, неверен ли мой способ проверки с Python
Я пробовал r[0] == 'null'
, r is None
, r == 'null'
, r == null
и r == Null
безрезультатно.
Успешный запрос
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 333
Access-Control-Allow-Origin: *
Server: Werkzeug/0.14.1 Python/3.7.0
Date: Thu, 15 Nov 2018 15:11:03 GMT
{
"StoreNumber": 42,
"Street": "5000 Robinson Centre Drive",
"StreetSecondary": "",
"City": "Pittsburgh",
"State": "PA",
"ZipCode": "15205",
"ContactNumber": "(412) 787-1330",
"XO_TN": "(412) 249-9161",
"RelocationStatus": "",
"StoreType": "Dick's Sporting Goods",
"Timezone": "Eastern"
}
Запрос без данных (должен вернуть 404)
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 5
Access-Control-Allow-Origin: *
Server: Werkzeug/0.14.1 Python/3.7.0
Date: Thu, 15 Nov 2018 15:11:41 GMT
null