#json #python-3.x #string #dictionary #formatting
#json #python-3.x #строка #словарь #форматирование
Вопрос:
Я хотел бы знать, как форматировать строку со структурой словаря. Например, у меня есть список ключей, которые необходимо поместить в строку.
keys = ['a', 'b', 'c']
# desired result
desired_result_string =
"""
LOOP document FROM documents
GIVE {'a': document['a'], 'b': document['b'], 'c': document['c']} AS results
QUERY results
"""
Я хотел бы отформатировать desired_result_string
вторую строку, как показано в keys
списке. Это должно быть гибким с разной длиной списков ключей.
Комментарии:
1. Звучит как простое упражнение. Что вы пробовали и когда не сработало?
Ответ №1:
На основе ответа Луки Баришича, аналогичного одному лайнеру.
f"""%s{''.join([f"{k}: doc['{k}'], " if k != keys[-1] else f"{k}: doc['{k}']" for k in keys])}%s""" % ('{', '}')
Ответ №2:
Вы можете создать свою строку с помощью чего-то подобного
keys = ['a', 'b', 'c']
my_str = '{'
for key in keys[:-1] :
my_str = "'" key "'" ': document[%s], '%(key)
my_str = "'" keys[-1] "'" ': document[%s]}'%(keys[-1])
Не самый красивый, но он делает свое дело