Задать вопрос
Ответы пользователя по тегу Python
  • Почему json файл не создается через python в docker?

    @mikebelly
    Оба автора выше правы, я упрощу вам задачу еще более того.
    Теория для размышлений: представьте, что докер создает внутри вашего ПК еще один пк (виртуальное окружение), копирует ваш код в "свой" ПК и там его крутит, там же и создает нужный вам файл. Когда вы контейнер удаляете (docker compose down, например), то удаляется и тот самый ПК докера, включая все файлы, что там лежали (и ваш тоже, и весь скопированный код и тд)

    Практика: существует такая вещь как Volumes в Docker, подробнее тут:
    docker volumes
    Опять же представим, что докер создал отдельный ПК с вашим кодом, что он делает с Volume? Volume - это для "ПК внутри докера" как облачное хранилище (облако в данном случае это ваш ПК и есть)
    Внутри этого Volume лежат различные файлы, к которым докер имеет доступ "извне", то есть со своей вм может обращаться к ним
    Волюмом можно сделать как отдельный файл, так и папку, способов создания масса, но тк вы начинающий, предлагаю начать со следующих строк:

    db_auth:
        container_name: db_auth
        ports:
          - "5432"
        environment:
          - POSTGRES_PASSWORD=root
          - POSTGRES_USER=admin
          - POSTGRES_DB=postgres
        image: postgres:12.22
        volumes:
          -<path_to_file_or_directory>:<path_to_file_or_directory>


    На первое время для простого скрипта этого должно хватить, а дальше - изучайте документы, форумы и тд, я когда-то и сам ответ на этот вопрос нашел в интернете
    Ответ написан
    Комментировать
  • Как исправить ошибку в запросе requests?

    @mikebelly
    import requests
    import json
    
    
    BTC_rosbank = {'tokenId': 'BTC', 'currencyId': 'RUB', 'payment': 75, 'side': 1, 'size': 10, 'page': 1}
    
    
    headers = {
        'accept': '*/*',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'ru-RU',
        'cache-control': 'no-cache',
        'content-length': '85',
        'content-type': 'application/x-www-form-urlencoded',
        'guid': 'dfc2731c-84fe-30f1-33fb-a1ae4f96d5de',
        'lang': 'ru-RU',
        'origin': 'https://www.bybit.com',
        'platform': 'PC',
        'pragma': 'no-cache',
        'referer': 'https://www.bybit.com/',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': 'Windows',
        'sec-fetch-dest': 'empty',
        'sec-fetch-mode': 'cors',
        'sec-fetch-site': 'same-site',
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/104.0.0.0 Safari/537.36'
    }
    json = json.dumps(BTC_rosbank)
    result_BTC_rosbank = requests.post('https://api2.bybit.com/spot/api/otc/item/list', headers=headers, data=BTC_rosbank)
    
    print(result_BTC_rosbank.text)


    У меня это работает, нужно убрать некоторые параметры из переменной BTC_Rosbank, 'accept' сделать '*/*', потому что requests сама определяет тип входящих данных (content-type - тоже ловушка в данной ситуации, у меня эта строка мешала парсить бинанс). Ну и вместо json отправлять data. Я парсил всю страницу сразу, не знаю, получится ли у вас по вашим запросам (+ удалить кукис и токен)
    Ответ написан
    Комментировать