Как прочитать CSV-файл из URL-адреса с помощью Python?

когда я делаю завиток к ссылке API вызова http://domain.com/passkey=wedsmdjsjmdd

curl 'http://domain.com/passkey=wedsmdjsjmdd' 

Я получаю выходные данные сотрудника в формате CSV-файла, например:

 "Steve","421","0","421","2","","","","","","","","","421","0","421","2" 

как можно разобрать это с помощью python.

Я пытался:

 import csv cr = csv.reader(open('http://domain.com/passkey=wedsmdjsjmdd',"rb")) for row in cr: print row 

но это не сработало, и я получил ошибку

http://domain.com/passkey=wedsmdjsjmdd No such file or directory:

Благодаря!

  • При использовании lxml можно ли отображать XML без атрибутов пространства имен?
  • Данные доступа Python в подкаталоге Package
  • Установка модуля lxml в python
  • Осмотреть атрибуты класса python
  • Как отправить сообщение нескольким получателям?
  • Используйте argparse для запуска 1 из 2 функций в моем скрипте
  • Запуск Python в PowerShell?
  • json.loads позволяет дублировать ключи в словаре, переписывая первое значение
  • 5 Solutions collect form web for “Как прочитать CSV-файл из URL-адреса с помощью Python?”

    Вам нужно заменить open на urllib.urlopen или urllib2.urlopen .

    например

     import csv import urllib2 url = 'http://winterolympicsmedals.com/medals.csv' response = urllib2.urlopen(url) cr = csv.reader(response) for row in cr: print row 

    Это приведет к следующим

     Year,City,Sport,Discipline,NOC,Event,Event gender,Medal 1924,Chamonix,Skating,Figure skating,AUT,individual,M,Silver 1924,Chamonix,Skating,Figure skating,AUT,individual,W,Gold ... 

    Использование pandas очень просто читать csv-файл непосредственно из URL-адреса

     import pandas as pd data = pd.read_csv('https://example.com/passkey=wedsmdjsjmdd') 

    Это будет читать ваши данные в табличном формате, что будет очень легко обрабатывать

    Вы можете сделать это и с модулем запросов:

     url = 'http://winterolympicsmedals.com/medals.csv' r = requests.get(url) text = r.iter_lines() reader = csv.reader(text, delimiter=',') 

    Чтобы повысить производительность при загрузке большого файла, ниже может работать несколько более эффективно:

     import requests from contextlib import closing import csv url = "http://download-and-process-csv-efficiently/python.csv" with closing(requests.get(url, stream=True)) as r: reader = csv.reader(r.iter_lines(), delimiter=',', quotechar='"') for row in reader: # Handle each row here... print row 

    Установив stream=True в запросе GET, когда мы передаем r.iter_lines() в csv.reader (), мы передаем генератор в csv.reader (). Поступая таким образом, мы разрешаем csv.reader () лениво перебирать по каждой строке ответа for row in reader .

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

    Листы Google предлагают решение под файлом -> публикация в Интернете -> и по ссылке вы можете создать ссылку, которая автоматически загружает csv. Инструкции и скриншоты можно найти здесь: http://support.aftership.com/article/141-csv-auto-fetch-using-google-drive-spreadsheet

    Python - лучший язык программирования в мире.