Выведите каждый словарь из списка в новой строке в строке

#python #string #dictionary

Вопрос:

У меня есть строка и список словарей:

 body = "Next, we wil give you detailed information about each case: %s"

feature_list = [{'FEATURE_NAME': 'FT02', 'Number of users who tested it ': 30, 'Number of problems detected' : 2},
{'FEATURE_NAME': 'SW045', 'Number of users who tested it ': 5, 'Number of problems detected' : 0}
{'FEATURE_NAME': 'SW04',  'Number of users who tested it ': 23, 'Number of problems detected' : 8}]
 

Я хочу создать новую строку, подобную этой :

 newbody = """
    Next, we wil give you detailed information about each case :
    {'FEATURE_NAME': 'FT02', 'Number of users who tested it ': 30, 'Number of problems detected' : 2}
    {'FEATURE_NAME': 'SW045', 'Number of users who tested it ': 5, 'Number of problems detected' : 0}
    {'FEATURE_NAME': 'SW049',  'Number of users who tested it ': 23, 'Number of problems detected' : 8}]
    """
 

Я попытался повторить список, но при этом я получаю только последний словарь в строке. Я знаю, что можно дать список таким, какой он есть, но это выглядит очень некрасиво и трудно читается.

Комментарии:

1. Можете ли вы показать нам, как вы пытались повторить и что вы получили в результате, по сравнению с тем, что вы «хотите» получить?

Ответ №1:

соедините элементы feature_list , а затем распечатайте

 body = "Next, we wil give you detailed information about each case:"

feature_list = [{'FEATURE_NAME': 'FT02', 'Number of users who tested it ': 30, 'Number of problems detected' : 2},
{'FEATURE_NAME': 'SW045', 'Number of users who tested it ': 5, 'Number of problems detected' : 0},
{'FEATURE_NAME': 'SW04',  'Number of users who tested it ': 23, 'Number of problems detected' : 8}]
features = 'n'.join(str(feature) for feature in feature_list)
print(f'{body}n{features}')
 

Обратите внимание, что будет гораздо лучше сделать красивую строку вместо отображения диктатора.