
Oscar Narvaez
PreguntaEl 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?

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

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

Danelia Sanchez Sanchez
Te falta importar el módulo csv
import csv

Oscar Narvaez
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
Hola, comparte tu código para poder ayudarte, estas usando una variable csv que no esta definida.