Ответы пользователя по тегу Python
  • Как правильно разрабатывать REST API на aiohttp?

    @BogBel
    К сожалению идеология asyncio(python3.4+) еще не очень популярна, и вероятно пока Джанго не зарелизить версию с поддержкой python3.6 асинхронные фреймворки будут стоять встороне. Я Вам советую грамотно почитать документацию фреймворка.
    Ее разработчики достаточно ответственно подошли к этому и там есть пример bestpractice решений для построения API.
    Ответ написан
    Комментировать
  • Как сделать так ,чтобы бот отвечал на сообщения фразами из массива?

    @BogBel
    для того что бы выбрать случайный элемент массива используйте
    import random
    data = ['answ1', 'answ2', 'answ3', 'answ4', 'answ5']
    >>>random.choice(data)
    answ1
    >>>random.choice(data)
    answ4
    Ответ написан
    Комментировать
  • Как перевести JSON в PythonObj без кракозябр?

    @BogBel
    import json
    with open(file_path) as file:
       data = json.load(file)

    Не знаю ответ ли это на Ваш вопрос, но когда есть задача читать валидный JSON из файла, пользуйтесь json.load.

    json.load(fp, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw)¶
    Deserialize fp (a .read()-supporting file-like object containing a JSON document) to a Python object using this conversion table.

    Взято из доки

    Обычно эти параметры(ensure_ascii, sort_keys, indent) используют для красивой записи в json файл через json.dumps()
    Если же вам надо красиво напечатать PythonObject в консоль, то советую обратить внимание на
    pprint
    from pprint import pprint
    data = {'key1': 'value1', 'key2': {'key2.1': 'value2.1', 'key2.2': {'key2.2.1': 'value2.2.1', 'key2.2.2': 'value2.2.2'}, 'key2.3': 'value2.3'}, 'key3': 'value3'}
    >>> pprint(data)
    {'key1': 'value1',
     'key2': {'key2.1': 'value2.1',
              'key2.2': {'key2.2.1': 'value2.2.1', 'key2.2.2': 'value2.2.2'},
              'key2.3': 'value2.3'},
     'key3': 'value3'}


    P.S скорее всего проблема в открытии файла , попробуйте передать в open дополнительный параметр encoding
    Ответ написан