QJsonDocument выходит из строя с запутанной ошибкой - PullRequest
0 голосов
/ 28 мая 2020

Рассмотрим следующий фрагмент кода:

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': []}) отлично работает.

Итак, что происходит?

1 Ответ

0 голосов
/ 28 мая 2020

Как оказалось, причина в значении None. Хотя документы ясно показывают, что QJsonDocument поддерживает null значения, None не поддерживается в PyQt5: QJsonDocument({'a': None}) приводит к

TypeError: a value has type 'NoneType' but 'QJsonValue' is expected.

Если это не исправлено в PyQt 5.15, я сообщу об ошибке.

...