[英]Convert QuerySet to python list in Django
I have this script:我有这个脚本:
lec_name = request.POST['selected_name']
data = Schedules.objects.filter(name=lec_name)
data_list = data.values_list('schedule', flat=True)
print(data_list)
This gives below OUTPUT:这给出了下面的 OUTPUT:
<QuerySet ["[['1', 'Subject 01', 'Hall 01', 'Tuesday'], ['2', 'Subject 02', 'Hall 03', 'Monday']]"]>
Then I tried below script to convert data_list
to a list:然后我尝试使用以下脚本将
data_list
转换为列表:
converted_list = list(data_list)
This gives below OUTPUT:这给出了下面的 OUTPUT:
["[['1', 'Subject 01', 'Hall 01', 'Tuesday'], ['2', 'Subject 02', 'Hall 03', 'Monday']]"]
This works fine.这工作正常。 But I'm not getting the expected output properly.
但我没有得到预期的 output 正确。
EXPECTED OUTPUT :预期 OUTPUT :
[['1', 'Subject 01', 'Hall 01', 'Tuesday'], ['2', 'Subject 02', 'Hall 03', 'Monday']]
How can I solve this?我该如何解决这个问题? I found a lot of answers about this, but none helped.
我找到了很多关于这个的答案,但没有任何帮助。 I'm using Python 3.7.4, Django 3.0.1
我正在使用 Python 3.7.4、Django 3.0.1
UPDATE更新
Here is my Schedules
model:这是我的
Schedules
model:
class Schedules(models.Model):
name = models.CharField(max_length=224)
semester = models.CharField(max_length=20)
hall_n_time = models.CharField(max_length=1000)
schedule = models.CharField(max_length=1000)
hall_n_time
and schedule
columns in database, They have two python lists as strings.数据库中的
hall_n_time
和schedule
列,它们有两个 python 列表作为字符串。 For an example, schedule column stores [['1', 'Subject 01', 'Hall 01', 'Tuesday'], ['2', 'Subject 02', 'Hall 03', 'Monday']]
list as a string.例如,计划列存储
[['1', 'Subject 01', 'Hall 01', 'Tuesday'], ['2', 'Subject 02', 'Hall 03', 'Monday']]
列表为一个字符串。
You have assumed that values_list
flat
parameter would decode json string which is not the case.您假设
values_list
flat
参数将解码 json 字符串,但事实并非如此。
It just returns single value instead of tuple它只返回单个值而不是元组
If you only pass in a single field, you can also pass in the flat parameter.
如果只传入单个字段,也可以传入 flat 参数。 If True, this will mean the returned results are single values, rather than one-tuples
如果为 True,这将意味着返回的结果是单个值,而不是一个元组
It returns exactly as mentioned, an array of schedule strings ( could be more of them )它完全如前所述返回一个时间表字符串数组(可能更多)
["[['1', 'Subject 01', 'Hall 01', 'Tuesday'], ['2', 'Subject 02', 'Hall 03', 'Monday']]"]
you still need to json.loads()
your JSON string to decode it你仍然需要
json.loads()
你的 JSON 字符串来解码它
converted_list = [json.loads(item) for item in data_list]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.