我在 MongoDB 集合中有一組 JSON,它們由 webhooks 接收,我無法控制它,并且一組元素與另一組元素不同。我能夠檢索那些對所有其他數據具有相同鍵的元素。但我需要檢索這些數據,無論它是否存在于其他文檔中。附上 MongoDB 中存在的值的圖片。我正在使用下面的代碼將 webhooks 插入到 [email protected]('/webhook', methods=['POST', 'GET'])def respond(): collection10 = db['webhooks'] a = request.get_json() print(a) collection10.insert_many(a) return render_template("signin.html")假設我嘗試檢索“_id”,我可以輕松檢索,因為兩個數據都有“_id”。但是,如果我嘗試檢索那些存在于一個元素中而不存在于另一個元素中的元素,則會出現錯誤。我正在使用此代碼來檢索元素:@app.route('/webhookdisplay', methods=['POST', 'GET'])def webhooksdis(): collection10 = db['webhooks'] for i in collection10.find({}): posts = i['name'] print(posts) return render_template("webhooks.html", posts = posts)對于上面的代碼,我得到錯誤鍵錯誤:'名稱'如果我以與上述相同的方式檢索“_id”,它將被檢索。預期結果:我需要檢索嵌套數據,無論它是否存在于其他數據中。如果有任何其他方法可以在 HTML 頁面中以表格形式顯示特定數據,那就太好了目的一旦獲得個人數據,我就可以使用 Jinja 以表格形式在前端呈現相同的數據
1 回答

aluckdog
TA貢獻1847條經驗 獲得超7個贊
如果您不確定返回的記錄是否包含特定鍵,那么您應該使用內置.get()
函數。如果鍵不存在,默認情況下返回 None ,這與使用方括號引用不同。這將避免您看到的 KeyError 異常。
posts = i.get('name')
if posts is None:
? ? # Handle logic if name doesn't exist
編輯:如果您需要嵌套字段:
name = i.get('data', {}).get('geofence_metadata', {}).get('name')
添加回答
舉報
0/150
提交
取消