我想解析數據字段從維基百科信息使用pyparsing。首先,下面的代碼工作:解析pyparsing組的混合字符
from pyparsing import *
test_line = """{{Infobox company | name = Exxon Mobil Corp | num_employees_year = 2015 }}"""
data_group = Group(
Suppress("|") +
OneOrMore(White()).suppress() +
Word(alphanums + printables)("key") +
OneOrMore(White()).suppress() +
Suppress("=") +
OneOrMore(White()).suppress() +
OneOrMore(Word(alphanums))("value") +
ZeroOrMore(White()).suppress()
)
infobox_parser = (
Literal("{{").suppress() +
Word("Infobox") +
White().suppress() +
Word("company") +
OneOrMore(White()).suppress() +
OneOrMore(data_group)("values") +
Literal("}}").suppress()
)
print(infobox_parser.parseString(test_line))
將會產生結果:
['Infobox', 'company', ['name', 'Exxon', 'Mobil', 'Corp'], ['num_employees_year', '2015']]
問題是,當我更改測試字符串
test_line = """{{Infobox company | name = Exxon Mobil Corp. | num_employees_year = 2015 }}"""
它的失敗,因爲我介紹了「 「。作爲'公司'的一部分。我以爲我可以通過改變組對象
data_group = Group(
Suppress("|") +
OneOrMore(White()).suppress() +
Word(alphanums + printables)("key") +
OneOrMore(White()).suppress() +
Suppress("=") +
OneOrMore(White()).suppress() +
OneOrMore(Word(alphanums + printables))("value") +
ZeroOrMore(White()).suppress()
)
解決這個問題,但我發現了以下錯誤:
pyparsing.ParseException: Expected "}}" (at char 91), (line:1, col:92)
缺少什麼我在這裏?提前致謝。
感謝您抽出時間來提供這樣一個詳細的解答。 – John