Python查询(字符串)

时间:2012-02-15 09:52:35

标签: python pyqt

我正在使用python插件。我有字段变量= “t_0”。“调查”我只想存储调查另一个变量。用于从“t_0”获得调查的功能。“调查”

当我尝试打印 a 时,我尝试了a=field.split("."),它给出了

<PyQt4.QtCore.QStringList object at 0x01247228>

是否有删除功能或找到“。”的位置。从字符串..?

如果我尝试 lstrip() ljust(),则会出错

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

3 个答案:

答案 0 :(得分:3)

如果aQString,则调用a.split会生成QStringList,就像在split上调用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 :(得分:1)

如果您的field变量的类型为QString,则以下代码适用于我。

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

输出= [ "a","b", "c" ]

尝试在python解释器中执行type(field)并向我们显示输出。

或者将变量类型转换为str,如a=str(field).split(".")

答案 2 :(得分:0)

似乎'a'不是真正的String,而是PyQt库生成的其他一些对象(可能是输入字段?)。如果你能找到一种方法从这个字段中获取一个真正的字符串(a.value(),a.text()或类似的东西),你应该可以使用split。