или json и json метод дампа не совпадает python3 .8 - PullRequest
0 голосов
/ 09 июля 2020

Я переключился на или json, так как он быстрее, но это вызвало проблему, которая у меня была довольно долгое время, но я никогда не думал об этом. Я наконец решил провести тесты, и это были мои тесты.

import orjson, json


data = json.dumps({"channel_id" : None, "payment_source_id" : None})
print(data)

data = orjson.dumps({"channel_id" : None, "payment_source_id" : None}).decode("utf-8")
print(data)

{"channel_id": null, "payment_source_id": null}
{"channel_id":null,"payment_source_id":null}

Это мой тестовый файл. Когда вы запустите это, вы увидите, что единственная разница - это пространство между нулем и кавычками. Когда я пытаюсь сбросить данные json с помощью или json и отправить их в запросе, я получаю неверный запрос 400 и иногда вообще ничего не возвращаю, но при попытке с json lib все работает нормально, я получаю верный ответ назад. Я не уверен, что делать, потому что, как я уже сказал, единственная разница - это пробелы. У кого-нибудь была подобная проблема, и он может сказать мне, что происходит или что я делаю не так? Также следует отметить, что если в моем коде нет «None» или json работает нормально.

1 Ответ

0 голосов
/ 09 июля 2020

Думаю, разницы нет. проверьте это:

import orjson, json

data1 = json.dumps({"channel_id" : None, "payment_source_id" : None})
data2 = orjson.dumps({"channel_id" : None, "payment_source_id" : None}).decode("utf-8")

print(json.loads(data2))
print (orjson.loads(data1))

{'channel_id': None, 'payment_source_id': None}
{'channel_id': None, 'payment_source_id': None}

Разница в пробелах предназначена только для строки. Если вы загрузите json, результат будет таким же. Вы можете добиться успеха, если преобразуете строку в json во время вызова API.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...