如何将数据从excel解析为模型?

时间:2017-09-04 08:23:41

标签: python django 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

所以列表输出是好的。现在我想把这个列表放到模型(用户)。 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中'●',则意味着用户是男人而且真正想要放在man变量中。 现在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

我不知道如何将这些列表数据发送到模型和模型有这些数据。严格来说,我想把这些列表数据写入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]

写模型的好方法?(或者是错误的方式?) 还有其他更有效的方法吗?

1 个答案:

答案 0 :(得分: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()