Импорт данных из данных в CSV - PullRequest
0 голосов
/ 03 октября 2018

Пользователь Windows здесь!Я использую pycharm и Python 3.7.

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

Это мой код:

from pytrends.request import TrendReq
import csv


 pytrend = TrendReq()
 pytrend.build_payload(kw_list=['Mercedes-Benz Classe A', 
 'Mercedes-Benz Classe C'])


# Interest Over Time
interest_over_time_df = pytrend.interest_over_time()
print(interest_over_time_df.head(100))



writer=csv.writer(open("C:\\Users\\p.de.falco\\
Desktop\\Tesi\\Data\\c.csv", 'w', encoding='utf-8'))

writer.writerow(interest_over_time_df)

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

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Как только я столкнулся с той же проблемой и решил ее, как показано ниже:

with open("file.csv",  "rb", encoding="utf-8) as fh:

точные детали:

r = read mode
b =  mode specifier in the open() states that the file shall be treated as binary, 
so contents will remain a bytes. No decoding attempt will happen this way.

Как мы знаем, Python пытается преобразовать байтовый массив (байты)который предполагается, что это строка в кодировке utf-8) в строку Unicode (str).Этот процесс, конечно, является декодированием в соответствии с правилами utf-8.Когда он пытается это сделать, он встречает последовательность байтов, которая не разрешена в строках с кодировкой utf-8 (а именно, это 0xff в позиции 0).

0 голосов
/ 03 октября 2018

Вы можете попробовать что-то вроде:

import csv
with open(<path to output_csv>, "wb") as csv_file:
    writer = csv.writer(csv_file, delimiter=',')
    for line in interest_over_time_df:
        writer.writerow(line)

Подробнее здесь: https://www.pythonforbeginners.com/files/with-statement-in-python

Вам нужно циклически перебирать данные и писать построчно

0 голосов
/ 03 октября 2018

попробуйте использовать панд,

import pandas as pd interest_over_time_df.to_csv("file.csv")

...