Как распечатать содержимое csv с удаленного URL-адреса с помощью python 3.x?

Я хочу распечатать содержимое csv с удаленного URL-адреса, но получаю следующее:

Ошибка Traceback (последний последний вызов) в () ----> 1 для строки в cr: 2 print(row)

Ошибка: итератор должен возвращать строки, а не int (вы открывали файл в текстовом режиме?)

Мой код:

import csv
import urllib3

medals_url = "http://winterolympicsmedals.com/medals.csv"
http = urllib3.PoolManager()
r = http.request("GET", medals_url)
r.status
response = r.data
cr = csv.reader(response)
for row in cr:
    print(row)

Заранее спасибо.


person Omar Murcia    schedule 05.05.2018    source источник


Ответы (2)


Это можно сделать напрямую с Pandas, который придаст вашим данным удобный для обработки формат.

import pandas as pd

df = pd.read_csv('http://winterolympicsmedals.com/medals.csv')
person Mathew Savage    schedule 05.05.2018

Это может помочь.

import urllib3

medals_url = "http://winterolympicsmedals.com/medals.csv"
http = urllib3.PoolManager()
r = http.request("GET", medals_url)
r.status

data = "".join(map(chr,r.data))
print(data)
data = data.split('\n')
for row in data:
    print(row) # or print(row.split(','))
person Mika72    schedule 05.05.2018