Как преобразовать список со словарями внутри в строку

Имеется такой список

['Текст в списке вне словаря', {'Индекс 1': 'Элемент 1'}, {'Индекс 2': 'Элемент 1'}, {'Индекс 1': 'Элемент 2'}, {'Индекс 2': 'Элемент 2'}, {'Индекс 1': 'Элемент 3'}, {'Индекс 2': 'Элемент 3'}, 'Текст вне словаря']

Как всё это преобразовать в обычную строку?

Так же стоит проверить, есть ли словари в списке

Я пытался различными методами конвертировать список в строку, но из-за словарей внутри, у меня не получилось


Ответы (1 шт):

Автор решения: Zhihar

Чтобы проверить, есть ли в списке словари можно сделать такой код:

data = ['Текст в списке вне словаря', {'Индекс 1': 'Элемент 1'}, {'Индекс 2': 'Элемент 1'}, {'Индекс 1': 'Элемент 2'}, {'Индекс 2': 'Элемент 2'}, {'Индекс 1': 'Элемент 3'}, {'Индекс 2': 'Элемент 3'}, 'Текст вне словаря']

dict_enabled = any(type(obj) == type(dict()) for obj in data)

print(dict_enabled)

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

На счет перевода в строку - не понял, нужен вот такой код:

res = []
for obj in data:
    if type(obj) == type(str()):
        res.append(obj)
    elif type(obj) == type(dict()):
        for key in obj:
            res += [key, obj[key]]


text = ' '.join(res)
print(text)
→ Ссылка