2015-03-08 2 views
0

Он работает с цифровым списком; Я пробовал одну и две цитаты без успеха.Синтаксис для списка строк с нерезидентным режимом

from configobj import ConfigObj, ConfigObjError 
from io import StringIO 

specs= """\ 
Number= [6, 8] 
Electric= [`battery`, `solar_panel`] 
""" 

car1="""\ 
Number= 6 
Electric= battery 
""" 

car2= """\ 
Number= 8 
Electric= solar_panel 
""" 

class Processing(): 
    def __init__(self, car): 
     super().__init__() 
     try: 
      ConfigObj(StringIO(car), configspec= StringIO(specs), unrepr= True) 
     except ConfigObjError as e: 
      print(e) 

if __name__ == "__main__": 
    Processing(car1) 
    Processing(car2) 

Результат:

Parse error from unrepr-ing value at line 2. 
Parse error from unrepr-ing value at line 2. 
+0

Я не думаю, что обратная косая черта '\\' требуется, поскольку тройные кавычки являются doc-строкой. –

+0

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

ответ

0

С unrepr значение ИСТИНА, то вы должны указать, что электрический получает строку. Итак, вы должны написать:

car1="""\ 
Number= 6 
Electric= 'battery' 
""" 

car2= """\ 
Number= 8 
Electric= 'solar_panel' 
"""