我已经用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 无法将其中一个键或值从字符串转换为字典,则可能会失败。 如果您有 None built_in 类型(str、int、list..),则可能会发生这种情况,但在您的情况下,它不会有问题。