Как прочесть csv файл с Яндекс Диска в pandas

Яндекс.Диск официально не предоставляет сервис прямого считывания файлов по прямой ссылке.

Публичная ссылка на файл открывается в окне браузера. И уже в этом окне есть ссылка для скачивания.

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

Самый популярный в РФ ресурс для хранения файлов сейчас – это Яндекс.Диск.

Вот пример кода на Python для чтения файла:

import pandas as pd 
import requests 
from urllib.parse import urlencode 
 
# используем api 
base_url = 'https://cloud-api.yandex.net/v1/disk/public/resources/download?' 
public_key = 'https://disk.yandex.ru/d/c_JZSSJSnqWYzA' 
 
# получаем url 
final_url = base_url + urlencode(dict(public_key=public_key)) 
response = requests.get(final_url) 
download_url = response.json()['href'] 
 
# загружаем файл в df 
download_response = requests.get(download_url) 
df = pd.read_csv(download_url, sep='\t') 

Конечно же, может потребоваться подбор кодовой страницы файла и разделителя.

Ну это как для любого файла csv .

Статья понравилась?

Как прочесть csv файл с Яндекс Диска в pandas: 3 комментария

  1. Эдуард, добрый вечер. Подскажите, почему возникает ошибка ‘href’ и как с ней бороться?
    “`
    import requests
    from urllib.parse import urlencode
    def get_url_ydx_disc(public_key):
    base_url = ‘https://cloud-api.yandex.net/v1/disk/public/resources/download?’
    final_url = base_url + urlencode(dict(public_key=public_key))
    response = requests.get(final_url)
    download_url = response.json()[‘href’]
    download_response = requests.get(download_url)
    return download_url
    olist_customers_datase_public_key = ‘https://disk.yandex.ru/d/QXrVDUoQvFhIcg’
    get_url_ydx_disc(olist_customers_datase_public_key)
    “`

    —————————————————————————
    KeyError Traceback (most recent call last)
    in
    —-> 1 get_url_ydx_disc(olist_customers_datase_public_key)

    in get_url_ydx_disc(public_key)
    3 final_url = base_url + urlencode(dict(public_key=public_key))
    4 response = requests.get(final_url)
    —-> 5 download_url = response.json()[‘href’]
    6 download_response = requests.get(download_url)
    7 return download_url

    KeyError: ‘href’

     
    1. Анатолий, добрый день!
      Я не пользуюсь сейчас этим методом, потому что пока что на вошёл в эту новую для меня сферу деятельности на уровне сотрудника любого уровня.
      Простите, ничем не могу пока что помочь.

       

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *