хранить данные из URL построчно в python - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь читать данные построчно из URL и сохранять каждую строку в списке: Я попытался:

url = request.GET.get('url')

data = [] 
with closing(requests.get(url, stream=True)) as f:
    data = [list(map(int, line.split('\n'))) for line in f]

Ввод:

1 1 1 
2 2 2
3 3 3

Ожидаемый вывод:

data = [[1,1,1],[2,2,2],[3,3,3]

1 Ответ

1 голос
/ 02 марта 2020

Поскольку вы не показываете свой источник данных или вводимые данные, нелегко сказать, что вы делаете неправильно. однако ниже приведен пример чтения CSV-файла данных из источника, он будет читать строку за строкой, а затем разбивать каждую строку через запятую и сохранять ее в виде списка. Все это делается в понимании списков, поэтому вы получите список списков.

ПРИМЕЧАНИЕ: Обычно это просто пример для CSV, я бы использовал модуль csv для анализа. Но это должно дать вам представление о том, как вы будете читать каждую строку данных, когда они возвращаются и разделяют ее.

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

import requests
from contextlib import closing

with closing(requests.get('http://samplecsvs.s3.amazonaws.com/SacramentocrimeJanuary2006.csv', stream=True)) as f:
    data = [line.decode().split(',') for line in f]
print(data)

ВЫХОД

[['cdatetime', 'address', 'district', 'beat', 'grid', 'crimedescr', 'ucr_ncic_code', 'latitude', 'longitude\r1/1/06 0:00', '3108 OCCIDENTAL DR', '3', '3C        ', '111'], ['5', '10851(A)VC TAKE VEH W/O OWNER', '2404', '38.55042047', '-121.3914158\r1/1/06 0:00', '2082 EXPEDITION WAY', '5', '5A        ', '1512', '459 PC  BURGLARY'], [' RESIDENCE', '2204', '38.47350069', '-121.4901858\r1/1/06 0:00', '4 PALEN CT', '2', '2A        ', '212', '10851(A)VC TAKE VEH W/O OWNER', '2404', '38.65784584', ''],..........
...