конвертировать строку dsn в python в kwargs

У меня есть простая строка, которая описывает соединение mysql. Строка находится в следующем виде:

dsn = 'user=dbuser database=mydbase host=localhost' 

эта строка может содержать многие из перечисленных в параметрах соединения, перечисленных здесь:

 http://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html 

в основном, когда вы подключаетесь к базе данных, вы делаете что-то вроде:

 cnx = MySQLConnection(user='dbuser', database='mydbase', host='localhost') 

Я хочу создать аргументы name = value для создания класса из строки. Поэтому я создал код для преобразования из строкового формата в формат словаря, который я могу вызвать с помощью оператора **. Я сделал это так:

 import json, re cnx = MySQLConnection(**json.loads('{'+','.join(re.sub(r'([a-z0-9_-]*)=([a-z0-9_-]*)','"\\1":"\\2"',dsn).split())+'}')) 

Он работает путем нахождения шаблонов name = value в строке и изменения их на «name»: «value» строковые сегменты, он объединяет их с запятыми между каждым сегментом, записывает новую строку с {} символами (что создает строку json), затем загружает json, чтобы получить это в формате словаря. Для меня это кажется слишком сложным. Есть ли более простой способ конвертировать из строки, подобной этой, в словарь?

One Solution collect form web for “конвертировать строку dsn в python в kwargs”

Один простой метод – использовать str.split :

 >>> vals = "key=val key2=val2" >>> dict(s.split("=") for s in vals.split()) {'key2': 'val2', 'key': 'val'} 
  • Разделить текст на предложения
  • Удаление Unicode \ uxxxx в String из JSON с использованием Regex
  • Написание правил грамматики для контекстно-зависимых элементов с использованием Pyparsing
  • Перевод PHP preg_match_all на Python
  • Python 2.6+ str.format () и регулярные выражения
  • Python web scraping, считая появление списка слов на каждой странице
  • Альтернативные альтернативы lookback для альтернативных регулярных выражений
  • Очистить уродливый код HTML WYSIWYG? Утилита Python или * nix
  • Как мне нечеткое совпадение слова с полным словом (и только полным словом) в предложении?
  • строка регулярных выражений и подстрока
  • Повторное выражение поиска Python из переменной внутри списка
  • Python - лучший язык программирования в мире.