2012-01-23 98 views
4

在Django/python中驗證JSON數據的最佳方法是什麼?Django/python驗證JSON

最好是創建一堆類,如Django FormMixin類,可以驗證傳入的數據/參數?

什麼是最好的幹這種方式?是否有我可以利用的現有應用程序?

我想採用JSON數據並作爲結果對我的模型實例執行一些操作/更新。我正在使用的數據不是用戶生成的,也就是說它們是id和標誌(沒有文本),所以我不想使用Forms。

+0

不太確定你的意思 - 你想驗證一個字符串,並確保它是有效的JSON?你想獲取JSON對象並確保數據類型正確(例如data.intVal是一個整數值)?或者是其他東西? –

+0

我想確保它們是有效的數據類型,但也要確保它包含正確的鍵和值對。但我想要一個通用的DRY方法,因爲需要在那裏的鍵值對將根據我正在處理的模型而有所不同。類似於Django Forms的方式。 –

回答

4

validictory驗證JSON來的JSON架構。有用。當然,現在你需要在json中定義你的模式,這可能對你想要做的事情有點用處,但它確實有它的位置。

+0

相當不錯的圖書館。值得一試 – Eldamir

1

我會建議一個名爲DictShield一個Python庫這個https://github.com/j2labs/dictshield

DictShield是一個數據庫無關的模型系統。它提供了一種輕鬆建模,驗證和重塑數據的方法。

甚至還有做JSON驗證樣本:

驗證用戶輸入

比方說,我們從用戶這個JSON字符串。

{ 「生物」: 「巨蟒,Erlang和吉他!」, 「祕密」: 「e8b5d682452313a6142c10b045a9a135」, 「名」: 「J2D2」}

我們可以寫一些服務器代碼,看起來像這樣:

json_string = request.get_arg('data') 
user_input = json.loads(json_string) 
user.validate(**user_input) 
+0

Dictshield看起來非常好,但是從它的描述來看,它是一個模型化數據庫(並且有驗證),而不僅僅是驗證它。 – PuercoPop