5
我想解析pyparsing一行。該行由多個(鍵,值)組成。我想得到的是(鍵,值)列表。一個簡單的例子:非貪婪分析與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")
有人能幫助我嗎?謝謝。
PS:稍微編輯了你的帖子。我的解決方案獲得了更好的結果。問題是我只得到第一部分而不是以下部分。我得到[('ids','12,13,14')]。我想得到[('ids','12,13,14'),('fields','name,title')] – Oli
@Oli:謝謝你的收穫。我爲第二個問題添加了解決方案。 – blubb
非常感謝。正是我需要的。 – Oli