我想解析数据字段从维基百科信息使用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