Разделите каждое появление паров key = value в строке, где значение включает в себя одно или несколько пробеловPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Разделите каждое появление паров key = value в строке, где значение включает в себя одно или несколько пробелов

Сообщение Anonymous »

У меня есть ситуация, когда пользователь может вводить команды с необязательными парами значений ключей, а значение могут содержать пространства. = знак и значения имеют пространство: < /p>
"cmd=create-folder name=SelfServe - Test ride"

"cmd=create-folder name=SelfServe - Test ride server=prd"

"cmd=create-folder name=cert - Test ride server=dev site=Service"

"cmd=create-folder name=cert - Test ride server=dev site=Service permission=locked"
< /code>
Требование:
Я пытаюсь проанализировать эту строку и разделить на словарь на основе ключа и значения, присутствующего на строке. < /p>
Если пользователь введет первую форму оператора, это WOLD производит словарь, подобный: < /p>
query_dict = {

'cmd' : 'create-folder',
'name' : 'selfserve - Test ride'
}
< /code>
Если пользователь введет вторую форму оператора, которая будет создавать /добавить дополнительную клавишу /pare < /p>
query_dict = {

'cmd' : 'create-folder',
'name' : 'selfserve - Test ride',
'server' : 'prd'

}
< /code>
Если пользователь введет третью форму оператора, которая бы создала < /p>
query_dict ={

'cmd' : 'create-folder',
'name' : 'cert - Test ride',
'server' : 'dev',
'site': 'Service'
}

Форма образует словарь с ключом/значением, разделенным, как ниже
query_dict ={

'cmd' : 'create-folder',
'name' : 'cert - Test ride',
'server' : 'dev',
'site': 'Service',
'permission' : 'locked' }
< /code>
-Idea-это проанализировать строку, где клавиша и значение разделены = символ и где значения могут иметь одно или несколько пробелов, и извлечь соответствующую пару клавиш /значения. < /p>
Я попробовал несколько методов, чтобы соответствовать, но не смог выяснить единый общий шаблон регулярного выражения, который может соответствовать /извлекать любую строку, где у нас есть такой вид шаблона < /p>
Ваша помощь. < /p>
Я попробовал несколько карт шаблонов, основанные на различном возможном пользовательском вводе, но это не масштабируемый подход.
Пример: < /p>
i Создал три шаблона, чтобы соответствовать трем разнообразным пользовательским вводу, но было бы неплохо, если бы у меня был один общий шаблон, который может соответствовать любой комбинации значений Key = в строке (я жестко кодирую ключ в шаблоне, который не является идеальным
'(cmd=create-folder).*(name=.*).*' ,
'(cmd=create-pfolder).*(name=.*).*(server=.*).*',
'(cmd=create-pfolder).*(name=.*).*(server=.*).*(site=.*)'


Подробнее здесь: https://stackoverflow.com/questions/749 ... include-on
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»