2
我正在編寫一個API並期望JSON中的數據。我的功能運作良好,並存儲數據在SQLite作爲如下:在Flask中處理POST JSON錯誤
if request.method == 'POST':
if request.headers['Content-Type'] == 'application/json':
db = get_db()
data = json.loads(request.data)
row = (data['lat'], data['long'], data['address'], data['name'])
db.execute('INSERT INTO places (lat, long, address, name) values (?, ?, ?, ?)', row)
db.commit()
resp = Response(status=200, mimetype='application/json')
return resp
如果有人給使用不正確的JSON字段(失蹤lat
,long
,address
或name
)訊息,然後一個錯誤被扔瓶。
處理這個問題的最佳方法是什麼?
我試着這樣做:
if not 'lat' in data or if not 'long' in data or ....
但data
只是一個字符串,而不是一本字典。所以,我有兩個問題:
- 如何是申請被引用,彷彿是一本字典以上(
data['lat']
...)? - 什麼是處理此錯誤的適當方法?
請求*可能*是某種不能解碼爲字典的東西,的確如此,請參閱答案。 –