TransWikia.com

Retornar coluna especifica com a biblioteca csv

Stack Overflow em Português Asked by esabin on November 7, 2021

Tenho uma planilha com 4 colunas e 2 linhas e quero retornar a coluna idade, sem o identificador da coluna, somente o conteúdo das linhas.

Código:

import csv
def get_column_of_csv(filename, column):
  with open(filename) as stream:
    reader = csv.DictReader(stream)
    for row in reader:
      yield row[column]

for name in get_column_of_csv('teste.csv', 'sobrenome'):
    print(name)

Ao rodar o código, exibe esse erro:

Traceback (most recent call last):
File … line 3, in
from asyncore import file_wrapper
ImportError: cannot import name ‘file_wrapper’ from ‘asyncore’ …
Alguém sabe como resolver esse erro?

One Answer

Usando este aquivo de referência como teste.csv:

    nome,sobrenome,idade,peso
    Maria,joao,20,60
    Joao,maria,10,30

Seu código funciona normalmente, retornando a coluna do sobrenome.

    import csv
    
    def get_column_of_csv(filename, column):
        with open(filename) as stream:
            reader = csv.DictReader(stream)
            for row in reader:
                yield row[column]

    for name in get_column_of_csv('teste.csv', 'sobrenome'):
        print(name)

Sugiro verificar sua indentação.

Em sua pergunta vocẽ mencionou que deseja exibir a idade, então basta alterar o critério de seleção para idade:

    for idade in get_column_of_csv('teste.csv', 'idade'):
        print(idade)

Answered by Alysson Oliveira on November 7, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP