El código me está arrojando el siguiente error Traceback (most recent call last): File “main_prof.py”, line 148, in <module> _save_...

Oscar Narvaez

Oscar Narvaez

Pregunta
studenthace 6 años

El código me está arrojando el siguiente error

Traceback (most recent call last):

File “main_prof.py”, line 148, in <module>

_save_clients_to_storage()

File “main_prof.py”, line 23, in _save_clients_to_storage

writer = csv.DictWriter(f, fieldnames=CLIENT_SCHEMA)

NameError: name ‘csv’ is not defined

No entiendo porque si estoy en la carpeta correspondiente al archivo .csv que creé (" .clients.csv ")

Alguién sabe por qué puede estar pasando?

5 respuestas
para escribir tu comentario
    Oscar Narvaez

    Oscar Narvaez

    studenthace 6 años

    Ya veo que ese era el problema, muchas gracias!!

    Diego Forero

    Diego Forero

    Team Platzihace 6 años

    @oscarn2 como lo menciona @DaneSanchz te falta importa csv para poder acceder acceder a DictReader

    Danelia Sanchez Sanchez

    Danelia Sanchez Sanchez

    studenthace 6 años

    Te falta importar el módulo csv

    import csv
    Oscar Narvaez

    Oscar Narvaez

    studenthace 6 años

    Aquí está el código desde el comienzo hasta el bloque de código de la línea donde ocurre el error.

    import sys import os CLIENT_TABLE = '.clients.csv' #Se menciona con punto al comienzo porque es un archivo oculto CLIENT_SCHEMA = ['name', 'company', 'email', 'position'] clients = [] def _initialize_clients_from_storage(): with open(CLIENT_TABLE, mode='r') as f: #:Usando un context manager para poder usar nuestro archivo #r: Reader #f: Referencia del archivo reader = csv.DictReader(f, fieldnames=CLIENT_SCHEMA) for row in reader: #Inicializand clients.append(row) def _save_clients_to_storage(): #Agarrar nuestra lista de clientes y la salvará en ese archivo #OJO, una vez que abrimos un archivo no podemos reescribirlo, por eso hacemos una tabla temporal! tmp_table_name = '{}.tmp'.format(CLIENT_TABLE) with open(tmp_table_name, mode='w') as f: writer = csv.DictWriter(f, fieldnames=CLIENT_SCHEMA) writer.writerows(clients) #queremos escribir sobre una fila #Usamos un módulo de Python "os" os.remove(CLIENT_TABLE) #Eliminamos tabla original os.rename(tmp_table_name, CLIENT_TABLE) #Renombra nuestra tabla temporal, al igual que se llamaba la original
    Diego Forero

    Diego Forero

    Team Platzihace 6 años

    Hola, comparte tu código para poder ayudarte, estas usando una variable csv que no esta definida.

Curso Práctico de Python

Curso Práctico de Python

Aprende a programar en Python creando un CRUD desde cero. Construye una aplicación de línea de comandos, interactúa con bases de datos y maneja conceptos como clases, listas y diccionarios. Lleva tu primer proyecto Python al siguiente nivel.

Curso Práctico de Python
Curso Práctico de Python

Curso Práctico de Python

Aprende a programar en Python creando un CRUD desde cero. Construye una aplicación de línea de comandos, interactúa con bases de datos y maneja conceptos como clases, listas y diccionarios. Lleva tu primer proyecto Python al siguiente nivel.