Строка в вашем вопросе фактически является списком элементов словаря.И списки также не имеют метода замены.Так что это не сработает.Так как вы хотите заменить новые строки каждого ключа и значения, вы должны выполнить итерацию по каждому элементу списка и каждой паре ключ-значение dict и заменить новые строки в строке.
list_of_dicts = [{"id" : "id1 \n\n", "key2 \n" : "value2", "key3" : "value3"},{"id" : "id2", "key2" : "value2", "key3" : "value3"},{"id" : "id3", "key2" : "value2", "key3" : "value3't"}
]
new_list_of_dicts = [dict([(key.replace("\n", ""), dict1[key].replace("\n", "")) for key in dict1]) for dict1 in list_of_dicts]
print new_list_of_dicts
Выход:
[{'key3': 'value3', 'key2 ': 'value2', 'id': 'id1 '}, {'key3': 'value3', 'key2': 'value2', 'id': 'id2'}, {'key3': "value3't", 'key2': 'value2', 'id': 'id3'}]