我有一个编码的字典列表:
[u"{'name':'Tom', 'uid':'asdlfkj223'}", u"{'name':'Jerry', 'uid':'alksd32'}", ...]
无论如何我可以创建一个仅包含键名值的列表吗?
如果有人足够了解 Django ORM,可以从 PostgreSQL 数据库中提取具有属性的数据/列列表,那就更好了。
谢谢!
我有一个编码的字典列表:
[u"{'name':'Tom', 'uid':'asdlfkj223'}", u"{'name':'Jerry', 'uid':'alksd32'}", ...]
无论如何我可以创建一个仅包含键名值的列表吗?
如果有人足够了解 Django ORM,可以从 PostgreSQL 数据库中提取具有属性的数据/列列表,那就更好了。
谢谢!
name
要从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
's 作为字符串存储在数据库中,或者更喜欢 JSON 而不是 Python 字符串表示,或者如果您必须使用当前格式,那么此处另一个问题中提供的 AST 解析解决方案应该可以完成这项工作。
您可以使用ast.literal_eval
:
>>> data = [u"{'name':'Tom', 'uid':'asdlfkj223'}",u"{'name':'Jerry', 'uid':'alksd32'}"]
>>> import ast
>>> [ast.literal_eval(d)['name'] for d in data]
['Tom', 'Jerry']