gpt4 book ai didi

python - 将 PyQt4 QString 转换为 Python 列表

转载 作者:太空宇宙 更新时间:2023-11-04 10:43:37 25 4
gpt4 key购买 nike

我有一个 PyQt4 字符串数组存储在一个变量 result 中,如下所示:

{
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 列表?

最佳答案

尝试:

for i in result:
src = str(i[PyQt4.QtCore.QString(u'src')])
alt = str(i[PyQt4.QtCore.QString(u'alt')])

这是因为我们的字典键不是 Python 字符串而是 QString对象。

(注意:我假设包含相同字符串的两个 QString 对象始终具有相同的哈希码并且始终比较相等——如果不是,那么首先使用 QString s 作为字典键是个坏主意.)

这是假设 resultlist包含您演示形式的字典,例如:

result = [
{
PyQt4.QtCore.QString(u'src'): PyQt4.QtCore.QString(u'http://...'),
PyQt4.QtCore.QString(u'alt'): PyQt4.QtCore.QString(u'bla'),
},
{
PyQt4.QtCore.QString(u'src'): PyQt4.QtCore.QString(u'http://...'),
PyQt4.QtCore.QString(u'alt'): PyQt4.QtCore.QString(u'bla'),
},
....
]

注意:

如果您需要大量处理该数据,您可能希望将整个数据列表转换为纯 Python 数据结构(即将所有 QString 转换为 unicodestr ),然后在他产生的新数据结构上工作。您仍然可以选择保留原始结构,只需将转换后的结构存储在另一个变量中,您可能已经猜到了。

更新:(根据评论)

如果您的 QString对象实际上包含非 ASCII 字符,你运气不好只使用 str()将它们转换为纯 Python 字符串;相反,您需要将它们转换为 unicode对象:

src = unicode(i[PyQt4.QtCore.QString(u'src')])

如果您随后需要将其转换为“原始”字节:

src = src.encode('utf_8')  # or use whatever encoding you prefer instead of UTF-8 here

关于python - 将 PyQt4 QString 转换为 Python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com