2016-01-22 130 views
-2

我想解析下列所有URL條目的嵌套字典。他們應該被寫入list解析嵌套字典

{u'_id': ObjectId('56a22819ffd6f'), 
u'books': [{u'id': {u'id': u'4311'}, 
    u'link': {u'name': u'Operating Business', 
    u'url': u'http://ffff'}}, 
    {u'id': {u'id': u'4310'}, 
    u'link': {u'name': u'Operating Business', 
    u'url': u'http://zzzzz'}}, 
    {u'id': {u'id': u'7462'}, 
    u'link': {u'name': u'European Credit Trading', 
    u'url': u'http://xxxx'}}, 
    {u'id': {u'id': u'3258'}, 
    u'link': {u'name': u'Operating Business', 
    u'url': u'http://dddddd'}}, 
    {u'id': {u'id': u'7463'}, 
    u'link': {u'name': u'US Credit Trading', 
    u'url': u'http://aaaaa'}}], 
u'created': datetime.datetime(2016, 1, 2, 13, 1, 12, 744000), 
u'id': u'lingering-smoke', 
u'valuationDate': datetime.datetime(170, 1, 1, 0, 0, 16, 821000)} 

我該怎麼做?

+5

你嘗試過什麼嗎? – Christian

回答

1

假設使用相同的variables通過@gkusner一個可供選擇的方法來解決這個問題,例如

>>> dd = {full dictionary} 
>>> [ll['link']['url'] for ll in ['books']] 
[u'http://ffff', u'http://zzzzz', u'http://xxxx', u'http://dddddd', u'http://aaaaa'] 
+0

這當然是一個正確的解決方案 - 唯一的缺點是列表理解對於初學者來說可能很難理解 - 我試圖首先得到答案: } – gkusner

2

令dd =字典

dd = {full dictionary} 
url_list = [] 
for ll in dd['books']: 
    url_list.append(ll['link']['url']) 

print url_list 

[u'http://ffff', u'http://zzzzz', u'http://xxxx', u'http://dddddd', u'http://aaaaa'] 
+0

你錯過了':'你的'for'。 – AndreL

+0

你是正確的 - oops – gkusner

+0

發生這種情況,+1爲你的正確答案:) – AndreL