Ошибка кодировки символов с ботом Groupme с использованием библиотеки Groupy - PullRequest
0 голосов
/ 12 декабря 2018

Я пытаюсь начать писать бот Groupme, используя Groupy .

К этому сообщению было несколько связанных сообщений, но они казались немного более технически сложными,решения не казались эффективными, и ни одно из них не решило проблемы, с которыми я столкнулся.

Вот код, который у меня есть:

import groupy

token = "{My Token}"

from groupy.client import Client
client = Client.from_token(token)

groups = list(client.groups.list_all())

for group in groups:
    print(group)

Во-первых, я не верю, что это связано, но в затмении он предупреждает, что groupy - это неиспользованный импорт, хотя мне кажется, что это не так.

Что еще более важно, странная частьо проблемах, с которыми я сталкиваюсь, это то, что сообщения об ошибках меняются без изменений в приведенном выше коде.

Вот сообщение об ошибке, которое я получил: В каждом из этих сообщений об ошибках я 'мы отредактировали начало расположения файлов ... потому что я параноик

 Traceback (most recent call last):
  File "\Projects\Eclipse\eclipse-workspace\Gort's Cousin\groupme_bot.py", line 15, in <module>
   <Group(name='One of my group's names')>
   <Group(name='Another one of my group's names')>
    print(group.name)
  File "\Python\Python37-32\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode characters in position 27-28: character maps to <undefined>

Итак, на этот раз система фактически возвращает пару групп, в которых я нахожусь. Но затем вызывает исключение из-заошибки типа Юникод.

Без изменения какого-либо кода я также получаю эту ошибку:

Traceback (most recent call last):
  File "\Python\Python37-32\lib\site-packages\groupy\session.py", line 49, in data
    return self.json()['response']
  File "\Python\Python37-32\lib\site-packages\requests\models.py", line 808, in json
    return complexjson.loads(self.text, **kwargs)
  File "\Python\Python37-32\lib\json\__init__.py", line 348, in loads
    return _default_decoder.decode(s)
  File "\Python\Python37-32\lib\json\decoder.py", line 337, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "\Python\Python37-32\lib\json\decoder.py", line 355, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 60865 (char 60864)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "\Eclipse\eclipse-workspace\Gort's Cousin\groupme_bot.py", line 10, in <module>
    groups = list(client.groups.list_all())
  File "\Python\Python37-32\lib\site-packages\groupy\pagers.py", line 61, in autopage
    self.items = self.fetch_next()
  File "\Python\Python37-32\lib\site-packages\groupy\pagers.py", line 51, in fetch_next
    return self.fetch()
  File "\Python\Python37-32\lib\site-packages\groupy\pagers.py", line 42, in fetch
    return self.endpoint(**self.params)
  File "\Python\Python37-32\lib\site-packages\groupy\api\groups.py", line 21, in _raw_list
    return [Group(self, **group) for group in response.data]
  File "\Python\Python37-32\lib\site-packages\groupy\session.py", line 51, in data
    raise exceptions.InvalidJsonError(self._resp) from e
groupy.exceptions.InvalidJsonError: The JSON was incomplete/invalid

Я, скорее всего, ошибочен, но мне кажется, что существует некоторая проблема с тем, как groupy агрегирует группы, и / иликак я настроил свой проект для обработки этих вызовов.

Любая помощь в этом вопросе будет отличной.

Я также могу добавить некоторый код из библиотеки groupy, если это станет необходимым.

TLDR: Получение ошибки "UnicodeEncodeError" с использованием Groupy для написания бота groupme в Python

1 Ответ

0 голосов
/ 12 декабря 2018

Решено: Это была проблема, из-за которой имена групп с эмодзи плохо воспроизводились с кодировкой Cp1252, которую я использую в качестве глобальной настройки в eclipse.Я изменил конфигурацию запуска файла для кодирования в UTF-16BE.Смайлики не печатаются правильно на консоли, но все группы печатаются без ошибок.

...