2017-09-04 95 views
0

我解析Excel和列表獲取行數據。這就像我怎樣才能把數據從excel解析成模型?

[empty:'', text:’1', text:’1’, text:’40’, text:''] 
[empty:'', text:’2’, text:’5’, text:’23’, text:’●’] 
[empty:'', text:’3’, text:’9’, text:’52’, text:''] 

我的Excel文件(data.xlsx)是 excel

所以列表輸出ok.Now我想把這個列表(用戶)進行建模。在models.py 用戶模型是

class User(models.Model): 
    user_id = models.CharField(max_length=200) 
    name_id = models.CharField(max_length=200) 
    age = models.CharField(max_length=200) 
    man = models.BooleanField() 

man = models.BooleanField()最後的代碼意味着男人還是女人,如果在Excel中「●」,這意味着用戶是人與真正想放在男人的變量。 現在views.py是

#coding:utf-8 
    from django.shortcuts import render 
    import xlrd 

    book = xlrd.open_workbook('../data/data.xlsx') 
    sheet = book.sheet_by_index(1) 

    for row_index in range(sheet.nrows): 
     row = sheet.row(row_index) 
     print(row) 
    # I had to add codes connect controller & model 

我不知道如何發送這些列表數據建模和模型具有這些data.Strictly來講,我想這些列表數據寫入sqlite3.Is這段代碼

import app.models 
for x in row: 
    User.user_id = row[1] 
    User.name_id = row[2] 
    User.age = row[3] 
    User.man = row[4] 

寫模式好辦法嗎?(或者是錯誤的方式?) 是否有其他更有效的方法來做到這一點?

回答

0

假設你有整行和列的東西吧,這應該工作:

for row in rows: 
    # if the man column is not empty, we assume it's a male: 
    is_man = row[4] != "" 
    user = User(user_id=row[1], name_id=row[2], age=row[3], man=is_man) 
    user.save() 
+0

THX烏爾comments.I寫道烏爾代碼,但偏偏喜歡 從.models錯誤導入用戶 關於SystemError:父模塊「 '未加載,無法執行相對導入。 我該如何解決這個問題? – user8504021

+0

嘗試刪除導入並使用您的IDE自動添加導入。 –

+0

THX烏爾comments.I取出的進口和使用我的IDE導入,但現在發生錯誤 從app.models導入用戶 導入錯誤:沒有模塊名爲「應用」。然而,models.py和views.py在應用程序(這是孩子的應用程序)文件夾,所以我真的不明白,爲什麼沒有模塊名爲「應用程序」的錯誤我happens.How可以解決這一問題? – user8504021