python - 在 Python 中将 QVariant 转换回 dict

标签 python dictionary casting qvariant

我已经用 QSetting 保存了字典,当我加载它时,我得到了 QVariant

>>dict
{u'key1': u'val1', u'key2': u'val2',....}
...
>>loadedDict
<PyQt4.QtCore.QVariant object at 0x02B11848>

如何将其转换回字典,以便我可以再次使用它:

>>dict['key2']
val2

最佳答案

您可以将字典转换为字符串,然后在 eval(str) 后将其返回到字典:

pydict  = {'key1': 'val1', 'key2': 'val2'}
variant = QtCore.QVariant( pydict )
...
pydict = eval( str( variant.toString() ) )
print pydict
>>> {'key1': 'val1', 'key2': 'val2'}

请记住,如果无法将键或值之一从字符串转换为字典,则 eval 可能会失败。如果您没有内置类型(str、int、list ..),则可能会发生这种情况,但在您的情况下它不会出现任何问题。

关于python - 在 Python 中将 QVariant 转换回 dict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14646053/

相关文章:

Python pandas数据帧从_records读取, "AssertionError: 1 columns passed, passed data had 22 columns"

python - 使用 python 和 selenium 自动化谷歌登录显示 ""此浏览器或应用程序可能不安全""

python - 通过关联值的函数过滤字典键

c# - InvalidCastException Dictionary<string, string> 使用 Exception.Data

Python 按列表中字典的值对列表进行排序

java - 如何从删除中转换通用类型

python - 如何在 Ubuntu 服务器上使用 Supervisor/Nginx/Gunicorn 部署 Flask 应用

java - java中的提升和转换

c - 为什么将 NULL 转换为结构指针?

python - 方法的文本引用