[問題] 如何在objects.create裡使用for迴圈

看板Python作者 (BLG_Eric)時間9年前 (2016/07/03 18:36), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
各位好 我有以下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://www.ptt.cc/bbs/Python/M.1467542172.A.677.html

07/03 18:52, , 1F
讓 data 等於一個 dict comprehension
07/03 18:52, 1F
文章代碼(AID): #1NUEgSPt (Python)
文章代碼(AID): #1NUEgSPt (Python)