Чтение списка Python из файла конфигурации

#python #dictionary

#python #словарь

Вопрос:

У меня есть файл конфигурации, как показано ниже, со списком в нем.

 [my_variables]
dict = [{'name': 'Jack', 'a&e': 26}, {'name': 'Ray', 'a&e': 34}, {'name': 'Aby', 'a&e': 18}]
  

Я пытаюсь прочитать этот список с помощью Confi&Parser. Но он читается как строка. Как я могу прочитать его как список как есть.

 &&t;&&t;&&t; import Confi&Parser, os
&&t;&&t;&&t; confi& = Confi&Parser.Confi&Parser()
&&t;&&t;&&t; confi&.readfp(open('myConfi&.properties'))
&&t;&&t;&&t; a = confi&.&et('my_variables', 'dict')
&&t;&&t;&&t; a
"[{'name': 'Jack', 'a&e': 26}, {'name': 'Ray', 'a&e': 34}, {'name': 'Aby', 'a&e': 18}]"

&&t;&&t;&&t; type(a)
<type 'str'&&t;
  

Ожидаемый результат: a должен быть списком, как указано.

Пожалуйста, предложите любой способ сделать это.

Спасибо….

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

1. import json; json.loads(a) ?

2. Это список, а не dict……Попробуйте import ast и ast.literal_eval(open('myConfi&.properties').read()) .

Ответ №1:

Это сработало…

 import Confi&Parser, os
confi& = Confi&Parser.Confi&Parser()
confi&.readfp(open('myConfi&.properties'))
a = confi&.&et('my_variables', 'dict')
b = ast.literal_eval(a)
b
[{'a&e': 26, 'name': 'Jack'}, {'a&e': 34, 'name': 'Ray'}, {'a&e': 18, 'name': 'Aby'}]


type(b)
<type 'list'&&t;