迭代python字典并用键编辑所有字符串。

时间:2016-04-18 19:26:57

标签: python dictionary

在一个名为'data'的字典中,我有一个带有键'meeting'的嵌套字典。下面是一些示例数据。

   '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”。

1 个答案:

答案 0 :(得分:2)

问题是你实际上并没有更新字典。并且不需要内部循环:

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

如果Location值的格式与您显示的格式一致,您也可以按空格分割并获取最后一项而不是正则表达式替换:

for meetings in data['meetings']:
    meetings['Location'] = meetings['Location'].split()[-1]