Python 如何使用PyParsing';什么是引用字符串?

Python 如何使用PyParsing';什么是引用字符串?,python,pyparsing,Python,Pyparsing,我试图解析一个包含多个带引号的值的字符串。以下是我到目前为止的情况: 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_na

我试图解析一个包含多个带引号的值的字符串。以下是我到目前为止的情况:

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
;特别是,它们的构造函数似乎不接受
可打印的内容


如何删除单引号?

将表达式替换为以下内容:

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

不带引号。

将表达式替换为以下内容:

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

不带引号。

Yes,
QuotedString
的构造函数将字符用作开头和结尾分隔符,而不是字符串的内容。Yes,
QuotedString
的构造函数将字符用作开头和结尾分隔符,而不是字符串的内容。