我在变量result
中存储了一个PyQt4字符串数组,如下所示:
{
PyQt4.QtCore.QString(u'src'): PyQt4.QtCore.QString(u'http://assets.macys.com/navapp/img/misc/close_button.gif'),
PyQt4.QtCore.QString(u'alt'): PyQt4.QtCore.QString(u'Close')
}
我想转换成一个图像src和alt标记的python。我试图使用以下命令:
for i in result:
src = str(i['src'])
alt = str(i['alt'])
但我得到了以下错误:
Traceback (most recent call last):
File "ghosttest.py", line 32, in <module>
print i['src']
KeyError: 'src'
如何将其转换为常规python列表?
尝试:
这是因为我们的dict键不是Python字符串,而是
QString
对象。(注意:我假设包含相同字符串的两个
QString
对象总是具有相同的哈希代码,并且总是比较相等如果不是,那么首先使用QString
作为字典键是不好的。)这是假设
result
是一个list
包含您演示的形式的词典,例如:注意:
如果您需要经常处理这些数据,您可能需要将整个数据列表转换为纯Python数据结构(即将所有
QString
转换为unicode
或str
),然后再处理生成的新数据结构。您仍然可以选择保留原始结构,只需将转换后的结构存储在另一个变量中,正如您可能已经猜到的那样。更新:(根据注释)
如果您的
QString
对象实际上包含非ASCII字符,那么您只需使用str()
将它们转换为普通的Python字符串就不走运了;相反,您需要将它们转换为unicode
对象:如果需要将其转换为“原始”字节:
相关问题 更多 >
编程相关推荐