чтение записей файла конфигурации с динамическими именами в python

#python #arrays #variables

#python #массивы #переменные

Вопрос:

я новичок в python, но уже много программировал на PHP. И вот моя проблема, потому что оба языка используют немного разное написание и использование. когда я хочу получить доступ к переменной в PHP с динамическим содержимым, я могу сделать $array_name[$variable_name] но как я могу сделать это в python, если я не знаю содержимое $variable_name?

Моя актуальная проблема: получить запись ini по переменной с динамическим содержимым. В моем скрипте python переменная «mode_name» динамически заполняется запросом API. поэтому я не знаю содержимого. Скрипт проверяет, указано ли это содержимое «mode_name» в «config / modes» в ini-файле. Когда он указан, тогда есть категория ini с тем же именем, и это должно быть возвращено в запросе API. Но смотрите Ниже код, может быть, он объясняет это лучше. я немного сократил код, потому что все остальное работает. и динамический var получает правильное имя («traffic light»), поэтому он должен работать (в PHP), но я просто получаю сообщение об ошибке.

скрипт на python:

 import configparser
configfile = 'setup.ini'
config = configparser.ConfigParser()
config.read(configfile)
if mode_name in config['config']['modes']:
   ret = config[mode_name]
   return jsonify({'mode_name':ret})
 

ini-файл:

 [config]
modes = 'trafficlight, record'

[trafficlight]
title = 'trafficlight'
lights = 'red, yellow, green'
gpio_red = 17
gpio_yellow = false
gpio_green = 18

[record]
title = 'recording'
gpio = 17
 

выполнение этого приводит к следующей ошибке:

  File "app.py", line 6
    ret = config[mode_name]
                          ^
TabError: inconsistent use of tabs and spaces in indentation
 

Что я здесь делаю не так? Заранее спасибо!

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

1. Отступ в этой строке непоследователен; снимите его, затем снова сделайте отступ или скопируйте отступ из других строк.

2. действительно, это была проблема … у меня были вкладки в виде табуляции, а не табуляции в виде 4 пробелов, потому что я просто использовал nano для создания файла. я действительно должен использовать ide! Спасибо!