Записать выходные данные запроса URL в формат csv на Python

#python #csv

#python #csv

Вопрос:

Я хочу записать ответ в формат csv. Вот мой код:

 import requests
from bs4 import BeautifulSoup
import csv
import time

site = 'url'

with open('receipts_10.csv', 'rU') as csvfile:
    reader = csv.reader(csvfile, delimiter=';')
    for row in reader:

        response = requests.post(site, params={'appReceiptNum':row})
        soup = BeautifulSoup(response.text)
        status = soup.find("h4")
        statusString = status.text
  

Я открыл файл csv, и теперь я хочу перезаписать тот же csv с выводом:

         print(statusString)
  

Как вы можете видеть, я только распечатываю ответ в консоли, но вместо этого мне нужен файл .csv. Есть идеи?

Комментарии:

1. Если вы хотите записать , вы используете writer() не reader() . И вам нужно открыть файл для записи , 'w' а не для чтения.

2. О, извините, я сначала прочитал файл, и теперь я пытаюсь отправить выходные данные в тот же файл.

Ответ №1:

Просто используйте средство записи csv.

Что-то вроде

 with open('receipts_10.csv', 'rU') as csvfile:
    reader = csv.reader(csvfile, delimiter=';')
    outfile = 'somefile.csv'
    ofile = open(outfile,"wb")
    writer = csv.writer(ofile,delimiter=";")

    for row in reader:       
        response = requests.post(site, params={'appReceiptNum':row})
        soup = BeautifulSoup(response.text)
        status = soup.find("h4")
        statusString = status.text
        writer.writerow(statusString)
  

Вам, конечно, может потребоваться выполнить некоторое форматирование строки состояния, изменить разделитель, кавычки или другие параметры в writer. Используйте документацию Python для библиотеки csv, которая поможет вам. Но это основной принцип.

Если вы на самом деле ничего не читаете из файла csv, вам, конечно, не нужен Reader.

Комментарии:

1. В итоге я получил: IndentationError: неожиданный отступ

2. Вам нужно будет посмотреть, что находится в вашей строке состояния, и посмотреть, доступно ли это для записи в файл csv [например, выглядит как список строк], и если нет, выполните соответствующее переформатирование.

3. Ошибка отступа — это синтаксическая проверка ваших табуляций / интервалов… Все, что находится в разделе with, должно быть с вкладками