我有一個編碼字典列表:從字典的列表轉換一個關鍵字值列出
[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
列值,使用:
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
作爲字符串存儲在您的數據庫中,或者更喜歡使用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']
他們不是字典雖然。他們是字符串 – TerryA
是的,這是他可能需要首先解決的問題 - 看起來不對。 –
是的,這不是我所處的最佳狀態。謝謝您的幫助。我實際上嘗試了你提到的兩種方法,但是像這樣存儲字符串很頭痛,並且會導致錯誤。 – user1909186