请考虑以下代码:
from PyQt5.QtCore import QJsonDocument
json = {
"catalog": [
{
"version": None,
},
]
}
QJsonDocument(json)
在Python 3.7和PyQt 5.14.2下,它在最后一行导致以下错误:
TypeError: a value has type 'list' but 'QJsonValue' is expected
[QJsonDocument
显然支持列表:QJsonDocument({'a': []})
正常工作。
所以,这是怎么回事?
事实证明,None
值是原因。尽管docs清楚表明QJsonDocument
支持null
值,但PyQt5不支持None
:QJsonDocument({'a': None})
结果
TypeError: a value has type 'NoneType' but 'QJsonValue' is expected
。
如果未在PyQt 5.15中修复,我将报告该错误。