【问题标题】:'QString' object has no attribute 'strip'?'QString' 对象没有属性'strip'?
【发布时间】:2014-10-25 03:19:01
【问题描述】:

所以我正在尝试使用 Python 中的 mechanize.Browser() 模块读取网页。问题是br.open(url)不起作用,因为python返回标题中的错误。

代码如下:

url = "http://www.myserver.com/prda.php?validate=" + licensey
readurl = br.open(url).read()

在后一行,我得到:

File "/usr/lib/python2.7/urllib.py", line 1038, in unwrap
url = url.strip()
AttributeError: 'QString' object has no attribute 'strip'

我尝试使用 unicode(readurl)、unicode (br.open(url).read())、readlines() 代替 read()、str(代替 unicode)...我要么得到同样的错误, 或 br.open.read() 的无输出

帮助?

【问题讨论】:

  • 任何机会licensey 是一个QString?
  • 您确定要向我们展示所有代码吗? licenseyQString 还是其他类似字符串但不是真正的字符串对象?
  • 哈,谢谢你们两个。 licensey 确实是一个 QString。执行 str(licensey) 后,程序运行了!非常感谢!
  • 您可以回答并接受,否则它将成为一个悬而未决的问题。 :)

标签: python pyqt


【解决方案1】:

我猜您正在开发一个 PyQt 应用程序,而“licensey”是您从某个“QTextEdit”元素中获取的输入。

在您的应用程序中,“url”的类型为“QString”。并且在“QString”数据类型中没有“strip”方法。由于 open() 方法希望您发送“str”类型的参数,因此您只需对变量“url”进行类型转换。

只需添加一行

url = str(url)

在调用方法 open(url) 之前。希望这会有所帮助:)

【讨论】:

    【解决方案2】:

    PyQt QString 不包含 strip() 方法,但它有一个 trimmed() 方法,这真的很奇怪。见这里:http://pyqt.sourceforge.net/Docs/PyQt4/qstring.html#trimmed。 PyQt 中真正缺少的是变体 lstrip() 和 rtrip()。

    【讨论】:

      猜你喜欢
      • 2020-03-25
      • 2022-11-17
      • 2015-02-02
      • 2017-05-03
      • 2020-03-25
      • 2016-08-11
      • 2016-09-12
      • 2023-03-08
      • 1970-01-01
      相关资源
      最近更新 更多