【问题标题】:Convert QVariant back to dict in Python在 Python 中将 QVariant 转换回 dict
【发布时间】:2023-03-27 11:55:02
【问题描述】:

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

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

如何将它转换回 dict 以便我可以再次像这样使用它:

>>dict['key2']
val2

【问题讨论】:

  • loadedDict.toPyObject() 回复 this question 有帮助吗?
  • 不,它没有,或者我不知道如何使用它:>>loadedDict.toPyObject() 给出了这个:

标签: python dictionary casting qvariant


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-10-15
    • 1970-01-01
    • 2012-01-06
    • 1970-01-01
    • 1970-01-01
    • 2019-10-08
    • 2013-06-15
    • 2011-08-08
    • 1970-01-01
    相关资源
    最近更新 更多