Python 将字典列表中的一个键值转换为列表

Python 将字典列表中的一个键值转换为列表,python,django,postgresql,dictionary,django-orm,Python,Django,Postgresql,Dictionary,Django Orm,我有一个经过编码的词典列表: [u"{'name':'Tom', 'uid':'asdlfkj223'}", u"{'name':'Jerry', 'uid':'alksd32'}", ...] 我是否可以创建一个仅包含键名值的列表 如果有人对Django ORM非常了解,能够从PostgreSQL数据库中提取具有属性的数据/列的列表,那就更好了 谢谢 要从DB表中仅获取名称列的值,请使用: names = Person.objects.values_list('name', flat=Tru

我有一个经过编码的词典列表:

[u"{'name':'Tom', 'uid':'asdlfkj223'}", u"{'name':'Jerry', 'uid':'alksd32'}", ...]
我是否可以创建一个仅包含键名值的列表

如果有人对Django ORM非常了解,能够从PostgreSQL数据库中提取具有属性的数据/列的列表,那就更好了


谢谢

要从DB表中仅获取
名称
列的值,请使用:

names = Person.objects.values_list('name', flat=True)
(根据)

否则,给定

people = [{'name':'Tom', 'uid':'asdlfkj223'}, {'name':'Jerry', 'uid':'alksd32'},]
这应该可以做到:

names = [person['name'] for person in people]
您应该找出为什么您的数据项是字符串(包含dict的字符串表示形式),首先,它看起来不像应该的样子


或者,如果您实际上是将
dict
作为字符串存储在数据库中,或者您更喜欢JSON而不是Python字符串表示,或者如果您必须使用当前格式,那么这里的另一个问题中提供的AST解析解决方案应该可以完成这项工作。

要从DB表中仅获取
name
列的值,请使用:

names = Person.objects.values_list('name', flat=True)
(根据)

否则,给定

people = [{'name':'Tom', 'uid':'asdlfkj223'}, {'name':'Jerry', 'uid':'alksd32'},]
这应该可以做到:

names = [person['name'] for person in people]
您应该找出为什么您的数据项是字符串(包含dict的字符串表示形式),首先,它看起来不像应该的样子

或者,如果您实际上是将dict作为字符串存储在数据库中,您可能更喜欢JSON而不是Python字符串表示,或者如果您必须使用当前格式,那么这里另一个问题中提供的AST解析解决方案应该可以完成这项工作。

您可以使用:

您可以使用:



但它们不是字典。他们是stringsYeah,这可能是他首先需要解决的问题,看起来根本不对劲。是的,这不是我所处的最佳状态。谢谢你的帮助。实际上,我尝试了你提到的两种方法,但是像那样存储字符串是一件令人头痛的事情,并且会导致错误。那么,我的答案解决了你的问题吗?或者回答提出的问题?我认为问题的关键在于,如果问题得到了回答,那么如果你的问题在其他地方,那么答案应该被接受,这并不意味着问题没有得到回答。尽管它们不是字典。他们是stringsYeah,这可能是他首先需要解决的问题,看起来根本不对劲。是的,这不是我所处的最佳状态。谢谢你的帮助。实际上,我尝试了你提到的两种方法,但是像那样存储字符串是一件令人头痛的事情,并且会导致错误。那么,我的答案解决了你的问题吗?或者回答提出的问题?我认为问题的关键在于,如果问题得到了回答,那么如果你的问题在其他地方,那么答案应该被接受,这并不意味着问题没有得到回答。使用
ast.literal\u eval
比常规
eval
有什么好处?@jbaiter
ast.literal\u eval
比使用eval安全得多。链接到docs@jbaiter:
eval
是不安全的,使用它很少是个好主意
ast.literal\u eval
用于此目的是安全的。谢谢,我不知道!:-)与常规的
eval
相比,使用
ast.literal\u eval
有什么好处?@jbaiter
ast.literal\u eval
比使用eval安全得多。链接到docs@jbaiter:
eval
是不安全的,使用它很少是个好主意
ast.literal\u eval
用于此目的是安全的。谢谢,我不知道!:-)