作者BlgAtlfans (BLG_Eric)
看板Python
标题[问题] 如何在objects.create里使用for回圈
时间Sun Jul 3 18:36:09 2016
各位好
我有以下Model:
class Sdata(models.Model):
id = models.IntegerField(blank=True,primary_key=True)
data = JSONField()
def __str__(self):
return self.id
现在我想做的是把data栏位动态写入csv资料
先用csv.reader 一行一行读
再用key:value的方式写入Jsonfield('资料栏位' : '对应资料值')
但是我可能有很多笔资料
而且有些资料笔数不一定 资料栏位内容也未知
我已经有试着做出以下程式码(views.py):
def display(request):
t = 0 #count loop time
sdata = Sdata.objects.all()
for document in Document:
#Document是储存csv档的地方
datareader = csv.reader(open(document.p), delmiter=',')
#p是路径
for row in datareader:
if t == 0: #first time
col_count = len(row)
row_count = sum(1 for row in datareader)
frow = row #将csv资料第一行(栏位)储存到frow
t = t+1
else: #not first time
Sdata.objects.create(
name = ('id%d' % t)
for i in range(0, col_count,1):
data = {
('%s' % frow[i]): ('%s' % row[i]),
}
)
t = t+1
t = 0
return render_to_response('display.html',
RequestContext(request,locals()))
现在问题是
else後的填入资料部分
django好像不接受在objects.create中放入if,for,while...等
所以应该要怎麽改才能做到像我上面一样
让jsonfield动态填入多个key:value?
感谢各位~
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 123.192.211.60
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1467542172.A.677.html
1F:→ ck574b027: 让 data 等於一个 dict comprehension 07/03 18:52