我正在尝试将数据保存到PostgreSql数据库中的2D数组中,数据存储如下:
"[('User 1', 'User 2', 'User3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')]"
这表示数据库的单个列中的单个数组,此数据通过以下Python代码访问,该代码请求数据库中的正确行,然后是相关列
q = DBReports.objects.all().filter(name__contains = username)
q = q.values_list(columnName)
为了遍历检索到的数据,然后将其放入列表
users_list = ast.literal_eval(q[0][0])
然后使用以下代码选择列中的正确数组:
for list in users_list:
if user in list[2]:
listToUse = list
我遇到的问题是,现在使用检索到的数据,我需要更改它并重新保存到数据库(listToUse随着填充的空格而改变),这样数组现在可以代表
"[('User 1', 'User 2', 'User3', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '19')]"
我如何更新存储在数组中的数据,或者用新创建的相同结构列表替换数组,我使用django的数据库抽象来处理所有数据
答案 0 :(得分:0)
这是通过从返回的查询集中获取所有信息,将其存储在变量/列表中,使用所需信息更新这些变量,然后将其保存到数据库中来解决的。
请求信息:
q = DBReports.objects.all().filter(name__contains = assessor)
qValues = q.values_list(columnName)
if len(qValues) > 0:
users_list = ast.literal_eval(qValues[0][0])
usernameToAppend = q[0].username
nameToAppend = q[0].name
mn= users_list[0][1]
EOS= q[0].EOS
RW= q[0].RW
temp = (assessor, mn, assessee, '','','','','','','','','','','','','','','','','','')
users_list.append(temp)
recordToAppend = DBReports(username = usernameToAppend,name = nameToAppend, RW = users_list, EOS = evaluationsOfSelf, RW = RW)