Как использовать QuotedString 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_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,

Как я могу удалить одинарные кавычки?

1 ответ

Решение

Замена выражений следующим:

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

без кавычек.

Другие вопросы по тегам