如何将两个列表组合成一个json,其中包含一个dict,在python中有一个键值对(对于django)?

如何将两个列表组合成一个json,其中包含一个dict,在python中有一个键值对(对于django)?,python,python-3.x,django,list,Python,Python 3.x,Django,List,嘿,伙计们,我正在尝试将两个列表组合起来,特别是tag_name和tag_slugs,以便在前端使用它。我不知道哪种方法有效,但这正是我需要的 tags: { name: tag_name, slug:slug_name, name: 2nd, slug: 2nd slug, ... } 这就是我现在拥有的 def get_tags(self, post): tags_name = post.tags.names() tags_slug = post.t

嘿,伙计们,我正在尝试将两个列表组合起来,特别是
tag_name
tag_slugs
,以便在前端使用它。我不知道哪种方法有效,但这正是我需要的

tags: {
    name: tag_name, slug:slug_name,
    name: 2nd, slug: 2nd slug,
    ...
}
这就是我现在拥有的

def get_tags(self, post):
    tags_name = post.tags.names()
    tags_slug = post.tags.slugs()
    print(tags_name, tags_slug)
这是两个查询集

<QuerySet ['one', 'two', 'One']> <QuerySet ['one', 'two', 'one_1']>


谢谢。

假设您想要一份目录:

new_list = {'tags':[{'name': n, 'slug': s} for n, s in zip(list(tags_name), list(tags_slug))]}
结果:

{'tags': [{'name': 'one', 'slug': 'one'},
  {'name': 'two', 'slug': 'two'},
  {'name': 'One', 'slug': 'one_1'}]}

您的
标记
字典无效,您不能多次使用同一个键。我们假设它的结构如下:

tags: [
    {'name': 'tag_name', 'slug': 'slug_name'},
    {'name': '2nd_tag_name', 'slug': '2nd_slug_name'},
    ...
]
这是一份字典清单

然后你可以做:

def get_tags(self, post):
    tags_name = post.tags.names()
    tags_slug = post.tags.slugs()
    l1 = list(tags_name.values_list('...', flat=True))
    l2 = list(tags_slug.values_list('...', flat=True))
    tags = [{'name': zipped[0], 'slug': zipped[1]} for zipped in zip(l1, l2)]
    print(tags)

您提到的
tags\u name
tags\u slug
都是查询集,因此必须确保使用
values\u list('…',flat=True)
将它们展平。我不知道模型的属性是什么,所以您需要用它替换

非常感谢。成功了。我对
values\u list
flat=True
这两行有点混淆。谢谢你也帮我解决了这个问题。:)