2016-04-18 11 views
1

「データ」という辞書には、キーの「会議」を含む入れ子になった辞書があります。いくつかのデータの例を以下に示します。Python辞書を繰り返し、すべての文字列をkeyで編集します。

'meetings':[ 
      { 
     u'StartDate':u'09/06/2016', 
     u'EndDate':u'12/13/2016', 
     u'InstructorName':u'Staff', 
     u'MeetingNumber':1, 
     u'Days':u'MoWeFr', 
     u'Times':   u'8:30   AM - 10:00   AM', 
     u'TopicDescr':None, 
     u'Location':u'3302 MH' 
     } 
    ], 

私はそう伴うだろうそのすべてがするまで、すべてを削除して、全体の辞書を反復処理し、それが上記の場合には「MH」で唯一の建物キーとなるように、「場所」の文字列を編集しようとしていますスペースとスペース。私のコードはありませんが、動作していません。

for meetings in data['meetings']: 
    for location in meetings['Location']: 
     location = re.sub("[^a-zA-Z]+", "", location) 

私はこれは私がしようとしたときのようにスコープの問題になると場所を印刷するかもしれない、後でそれはまだ上記の場合には「3302 MH」となり全体の「場所」の文字列を、印刷していると思います。

答えて

2

問題は、実際に辞書を更新していないことです。そして、内側のループが必要とされていません:Location値の形式は、あなたが、あなたはまた、スペースで分割され、正規表現置換するのではなく、最後の項目を取得することが示されてきたものと一致している場合

for meetings in data['meetings']: 
    meetings['Location'] = re.sub("[^a-zA-Z]+", "", meetings['Location']) 

for meetings in data['meetings']: 
    meetings['Location'] = meetings['Location'].split()[-1] 
関連する問題