Форум русскоязычного сообщества Ubuntu


Следите за новостями русскоязычного сообщества Ubuntu в Twitter-ленте @ubuntu_ru_loco

Автор Тема: Python 3.6.5: проблема с модулем JSON  (Прочитано 1081 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Tyrion

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Python 3.6.5: проблема с модулем JSON
« : 07 Июня 2018, 00:25:44 »
Есть у меня небольшая самописная программа на Python, созданная в рамках освоения данного языка программирования. В Ubuntu 16.04 она прекрасно работала на Python 3.5. Сейчас, перейдя на 18.04, я столкнулся с проблемой - обход ошибок JSON (по try-except) перестал работать.
Запрос идет к api через прокси, который временами отваливается. В таком случае, вместо json получаем страницу html - это вызывало ошибку JSONDecodeError, которая успешно обходилась командами:
except json.decoder.JSONDecodeError:
    err = True
    print ("#", count, ":", time.asctime(), ": JSON Error!")
Как теперь я заметил, использовался модуль /usr/lib/python3.5/json/decoder.py




Запустив программу в Ubuntu 18.04 c Python 3.6.5, ошибка выглядит иным образом:
simplejson.errors.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

И используется модуль /usr/lib/python3/dist-packages/simplejson/decoder.py, что, как я понимаю, и создает проблему.



Внимание, вопрос: почему так? Ведь есть же модуль /usr/lib/python3.6/json/decoder.py !
Что это, баг или фича? И как можно это исправить?
Ubuntu 18.04, Gnome.

Оффлайн funk2256

  • Активист
  • *
  • Сообщений: 431
  • Arch + Xfce
    • Просмотр профиля
Re: Python 3.6.5: проблема с модулем JSON
« Ответ #1 : 07 Июня 2018, 16:04:55 »
Tyrion, можно же установить Python 3.5 и запускать скрипт с указанием версии 3.5? Не?
Feci quod potui, faciant meliora potentes.(Я сделал всё, что смог, пусть те, кто смогут, сделают лучше)
Новичкам
Шпаргалка команд

Оффлайн Tyrion

  • Автор темы
  • Любитель
  • *
  • Сообщений: 60
    • Просмотр профиля
Re: Python 3.6.5: проблема с модулем JSON
« Ответ #2 : 09 Июня 2018, 00:41:19 »
Tyrion, можно же установить Python 3.5 и запускать скрипт с указанием версии 3.5? Не?

Об этом я не подумал :). Программирование - это нечто принципиально новое для меня.
Получается, под каждую новую версию Python надо либо переписывать программу, либо же держать несколько версий "на все случаи жизни" и никакой обратной совместимости нет? Я считал, что несовместимы только Python 2x и Python 3x.
Ubuntu 18.04, Gnome.

 

Страница сгенерирована за 0.056 секунд. Запросов: 21.