How to read config from string or list? How to read config from string or list? python python

How to read config from string or list?


You could use a buffer which behaves like a file:Python 3 solution

import configparserimport ios_config = """[example]is_real: False"""buf = io.StringIO(s_config)config = configparser.ConfigParser()config.read_file(buf)print(config.getboolean('example', 'is_real'))

In Python 2.7, this implementation was correct:

import ConfigParserimport StringIOs_config = """[example]is_real: False"""buf = StringIO.StringIO(s_config)config = ConfigParser.ConfigParser()config.readfp(buf)print config.getboolean('example', 'is_real')


The question was tagged as python-2.7 but just for the sake of completeness: Since 3.2 you can use the ConfigParser function read_string() so you don't need the StringIO method anymore.

import configparsers_config = """[example]is_real: False"""config = configparser.ConfigParser()config.read_string(s_config)print(config.getboolean('example', 'is_real'))


Python has read_string and read_dict since version 3.2. It does not support reading from lists.

The example shows reading from a dictionary. Keys are section names, values are dictionaries with keys and values that should be present in the section.

#!/usr/bin/env python3import configparsercfg_data = {    'mysql': {'host': 'localhost', 'user': 'user7',              'passwd': 's$cret', 'db': 'ydb'}}config = configparser.ConfigParser()config.read_dict(cfg_data)host = config['mysql']['host']user = config['mysql']['user']passwd = config['mysql']['passwd']db = config['mysql']['db']print(f'Host: {host}')print(f'User: {user}')print(f'Password: {passwd}')print(f'Database: {db}')