Я пытаюсь разобрать строку с помощью pyparsing. Эта строка состоит из нескольких (ключей, значений). Я бы хотел получить список (ключей, значений). Простой пример:
ids = 12 fields = name
должен привести к чему-то вроде: [('ids', '12'), ('fields', 'name')]
Более сложный пример:
ids = 12, 13, 14 fields = name, title
должен привести примерно так: [('ids', '12, 13, 14 '), (' fields ',' name, title ')]
PS: кортеж внутри результирующего списка является просто примером. Это может быть диктат, или другой список, или что-то еще, это не так важно.
Но что бы я ни пробовал до сих пор, я получаю такие результаты:
[('ids', '12 fields ')]
Pyparsing поглощает следующий ключ, учитывая, что он также является частью значения.
Вот пример кода:
import pyparsing as P
key = P.oneOf("ids fields")
equal = P.Literal('=')
key_equal = key + equal
val = ~key_equal + P.Word(P.alphanums+', ')
gr = P.Group(key_equal+val)
print gr.parseString("ids = 12 fields = name")
Кто-нибудь может мне помочь? Спасибо.