2013-01-24 70 views
0

我想定期將數據導入到Django項目中。我需要告訴數據提供者我想要接收哪些格式的數據。我是否應該用Json,XML,CSV來請求它?將數據導入Django的好方法

在Django中如何處理這個問題?

回答

6

Django有一個導入數據的完整框架,稱爲Fixtures。您可以在這裏閱讀有關可用格式(JSON肯定存在):https://docs.djangoproject.com/en/dev/howto/initial-data/

還有一些數據應該是什麼樣子的例子。如:

[ 
    { 
    "model": "myapp.person", 
    "pk": 1, 
    "fields": { 
     "first_name": "John", 
     "last_name": "Lennon" 
    } 
    }, 
    { 
    "model": "myapp.person", 
    "pk": 2, 
    "fields": { 
     "first_name": "Paul", 
     "last_name": "McCartney" 
    } 
    } 
] 

如果保存,作爲beatles.json,你可以導入運行python manage.py loaddata /path/to/beatles.json

+0

真棒!正是我需要的。現在,如果我要接收不一定與我的Django模型匹配的數據,那麼我認爲必須創建一個程序,將原始JSON數據轉換爲適當的JSON裝置,然後才能導入到Django中? – edu222

+1

是的,這通常不是太困難,因爲你可以解析json,根據需要修改它,並使用'json.load'和'json.dump'來吐出json。如果此答案符合您的要求,請點擊答案旁邊的複選框。謝謝! –

+2

如果OP正在將*附加數據*加載到具有*現有數據*的模型中,我認爲這不會起作用。 loaddata 1)*要求* pk(主鍵)字段(沒有錯誤檢查),2)繞過任何'.save()'處理。在現場系統中,「pk」的下一個值是一個移動的目標,因此「猜測」它並不容易。如果你使用現有對象的'pk',你將覆蓋該對象* –

相關問題