es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Obtener valores .csv sin guardarlos.

En este momento estoy subiendo un archivo .csv a través de un formulario de modelo, guardándolo en un modelo y luego leyendo/guardando todos los valores del archivo .csv en otro modelo.

El archivo .csv no es necesario después de obtener todos los valores en el otro modelo, así que he estado tratando de encontrar una manera de leer solo el archivo .csv y obtener los valores sin guardarlo en el modelo.

A continuación se presentan los conceptos básicos de mi vista.

Agradecería cualquier consejo.

“`python

def ncaab_csv(request):

form = CsvUpload(request.POST or None, request.FILES or None)

if request.method == “POST”:
if form.is_valid():
form.save()

    # Obtener el archivo csv enviado
    games_file = Csv.objects.get(games_entered=False)

    with open(games_file.file_name.path, 'r') as f:
        reader = csv.reader(f)

        for i, row in enumerate(reader):
            if i == 0:
                pass
            else:
                try:
                    game = NCAABGame.objects.get(name__name=row[1],
                                                 updated=False,
                                                 date=today)

                    Todos los campos de NCAABGame aquí...

                    game.save()

    return redirect(reverse('ncaab_games'))

else:
    messages.error(request, "Error al guardar el archivo.")

else:
template = ‘management/ncaab/ncaab_csv.html’

context = {
‘form’: form,
}

return render(request, template, context)

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás intentando leer un archivo .csv y guardar los valores en otro modelo sin guardar el archivo .csv en sí. Aquí te presentamos algunos consejos que pueden ayudarte:

    • Utiliza la clase csv.DictReader para leer el archivo .csv y almacenar los valores en un diccionario. Esto hace más fácil acceder a los valores.
    • Utiliza la clase csv.writer para escribir los valores del diccionario en el otro modelo.
    • Utiliza la clase csv.reader para leer el archivo .csv línea por línea y almacenar los valores en una lista. Esto hace más fácil acceder a los valores.
    • Utiliza la clase csv.writer para escribir los valores de la lista en el otro modelo.

Comments are closed.