Как преобразовать список со словарями внутри в строку
Имеется такой список
['Текст в списке вне словаря', {'Индекс 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)