Чтение определенного столбца из CSV с DictReader

1

У меня проблема с получением значений 2-го столбца из файла csv.

Следующий код записывает данные в файл csv

def save_tweet_to_csv(ticker, tweet, emotion, confidence):
    file = Path(url_path + ticker + '_tweets.csv')
    if file.is_file():
        mode = 'a'
    else: 
        mode = 'w'
    with open(url_path + ticker + '_tweets.csv', mode, newline="\n", encoding="utf-8") as csvfile:
        fieldnames = ['tweet', 'emotion', 'confidence']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        if mode == 'w':
            writer.writeheader()
        writer.writerow({'tweet': tweet, 'emotion': emotion, 'confidence': confidence})

и я пытаюсь получить столбец эмоций из csv следующим образом

def plot_tweets_csv(ticker):
    file = Path(url_path + ticker + '_tweets.csv')
    emotions = []
    with open(file, 'r', encoding="utf8") as csvfile:
        reader = csv.DictReader(file)
        for row in reader :
            print(row['emotion'])

Но я продолжаю получать

Файл.... \Python36\lib\csv.py ", строка 87, в init self.reader = reader (f, диалект, * args, ** kwds) TypeError: аргумент 1 должен быть итератором

Любая идея, что здесь может быть неправильным?

Теги:
csv

1 ответ

3
Лучший ответ

Я думаю, вам нужно перейти от file к csvfile

with open(file, 'r', encoding="utf8") as csvfile:
    reader = csv.DictReader(csvfile)
    ...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню