Python Query (строка) - PullRequest
       5

Python Query (строка)

1 голос
/ 15 февраля 2012

Я работаю с плагинами Python. У меня есть поле переменная = "t_0". "Survey" Я хотел сохранить только опрос в другой переменной .Какая функция используется для получения опроса из "t_0". "Survey" ?

Я пытался a=field.split("."), когда я пытаюсь напечатать a , это дает

<PyQt4.QtCore.QStringList object at 0x01247228>

Есть ли какая-либо функция удаления или для поиска позиции "." из строки ..?

Если я попытаюсь lstrip () или ljust () , выдает ошибку, говорящую

AttributeError: 'QString' object has no attribute 'lstrip'..

Ответы [ 3 ]

3 голосов
/ 15 февраля 2012

Если a является QString, то при вызове a.split получается QStringList, так же как при вызове split на Python str производит list:

>>> qstr = QString("t_0.survey")
>>> slist = qstr.split(".")
>>> slist
<PyQt4.QtCore.QStringList object at 0x00BBCD88>

Вы можете привести QStringList к списку Python:

>>> list(slist)
[PyQt4.QtCore.QString(u't_0'), PyQt4.QtCore.QString(u'survey')]

или просто извлеките второй элемент:

>>> slist[1]
PyQt4.QtCore.QString(u'survey')

И, возможно, избавиться от QString упаковки:

>>> unicode(slist[1])
u'survey'
1 голос
/ 15 февраля 2012

Если ваша переменная field имеет тип QString, приведенный ниже код отлично работает для меня.

 QString str = "a,b,c";    
 QStringList list1 = str.split(",");

Вывод = [ "a","b", "c" ]

Попробуйте сделать type(field) в вашеминтерпретатор python и покажите нам вывод.

ИЛИ тип преобразует вашу переменную в str вот так a=str(field).split(".")

0 голосов
/ 15 февраля 2012

Кажется, что 'a' на самом деле не String, а какой-то другой объект, сгенерированный библиотекой PyQt (может быть, поле ввода?). Если вы можете найти способ получить настоящую строку из этого поля (a.value (), a.text () или что-то в этом роде), вы сможете использовать split.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...