Изменения, не учтенные в словарных значениях - PullRequest
0 голосов
/ 03 августа 2020

Я указал c букв ’, которые я хочу удалить из строковых значений в словаре, где бы они ни находились. Тем не менее, я не знаю, почему единственное изменение в определенном ключе c работает, а при циклическом использовании всего словаря - нет.

Используется l oop:

data_nv = {
    '00254325': 'remove something and something else etc etc ’, do this',
    '00348956': 'have fun here and here the’n get this and that'
}

for key in data_nv:
    if '’' in data_nv[key]:
        data_nv[key].replace('’', ' ')

Если я сделаю замену, как показано ниже, она будет работать.

data_nv['00254325'].replace('’', ' ')

Ответы [ 2 ]

2 голосов
/ 03 августа 2020

str.replace возвращает значение с произведенной заменой. Вам нужно сохранить значение обратно в словарь:

data_nv={'00254325': 'remove something and something else etc etc ’, do this', 
         '00348956': 'have fun here and here the’n get this and that'}

for key in data_nv:
    if '’' in data_nv[key]:
        # store replaced value back in dict under key
        data_nv[key] = data_nv[key].replace('’', ' ')

print(data_nv)

Вывод:

{'00254325': 'remove something and something else etc etc  , do this',
 '00348956': 'have fun here and here the n get this and that'}
0 голосов
/ 03 августа 2020

Только что нашел,

Мы можем использовать библиотеку re следующим образом:

for key in data_nv:
    if '’' in data_nv[key]:
        data_nv[key]=re.sub(r'’',' ',data_nv[key])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...