如何使用 PyParsing 的 QuotedString?

How to use PyParsing's QuotedString?

我正在尝试解析一个包含多个带引号的值的字符串。这是我目前所拥有的:

from pyparsing import Word, Literal, printables

package_line = "package: name='com.sec.android.app.camera.shootingmode.dual' versionCode='6' versionName='1.003' platformBuildVersionName='5.0.1-1624448'"

package_name = Word(printables)("name")
versionCode = Word(printables)("versionCode")
versionName = Word(printables)("versionName")
platformBuildVersionName = Word(printables)("platformBuildVersionName")


expression = Literal("package:") + "name=" + package_name + "versionCode=" + versionCode \
                + "versionName=" + versionName + "platformBuildVersionName=" + platformBuildVersionName

tokens = expression.parseString(package_line)

print tokens['name']
print tokens['versionCode']
print tokens['versionName']
print tokens['platformBuildVersionName']

打印

'com.sec.android.app.camera.shootingmode.dual'
'6'
'1.003'
'5.0.1-1624448'

请注意,所有提取的标记都包含在单引号内。我想删除这些,看起来 QuotedString 对象就是为了这个目的。但是,我很难调整此代码段以使用 QuotedStrings;特别是,他们的构造函数似乎没有采用 printables.

我该如何删除单引号?

用以下内容替换表达式:

package_name = QuotedString(quoteChar="'")("name")
versionCode = QuotedString(quoteChar="'")("versionCode")
versionName = QuotedString(quoteChar="'")("versionName")
platformBuildVersionName = QuotedString(quoteChar="'")("platformBuildVersionName")

似乎有效。现在脚本打印输出

com.sec.android.app.camera.shootingmode.dual
6
1.003
5.0.1-1624448

没有引号。