Cómo mostrar los datos en filas en lugar de cuerda?

votos
-2

En este momento, al imprimir gameuniqueteamsse muestra como una cadena. En SQL, en cada hilera, un nuevo equipo se agrega mientras que cada uno para mostrar de forma individual. En esta etapa, gameuniqueteams mostrarán la siguiente cadena

 ['Arsenal', 'Bournemouth', 'Brighton', 'Burnley', 'Chelsea']

Quiero que se muestran en cada fila de modo que cuando la transferencia es a SQL cada equipo conciertos seguidos por sí mismo.

['Arsenal']
['Bournemouth']
['Brighton']
['Burnley']
['Chelsea']

Esta es toda mi código en caso de que ayuda! ¿Que debería hacer?

#!/usr/bin/python
# -*- coding: utf-8 -*-

import psycopg2
import sys
import csv
from itertools import count, cycle
from _tkinter import create
from setuptools.dist import sequence
from email.policy import default
path = r'C:\Users\sammy\Downloads\E0.csv'
with open(path, r) as csvfile:
    readCSV = csv.reader(csvfile, delimiter=,)
    firstline = 1
    con = None
    con = psycopg2.connect(host='localhost' dbname='football' user='postgres' password='XXX')   
    cur = con.cursor()
    cur.execute(DROP TABLE teams)
    cur.execute(CREATE TABLE teams (HomeTeamID SERIAL PRIMARY KEY, AllTeams123 VARCHAR))

    hometeams = []
    awayteams = []
    uniqueteams = []
    allteams = []
    gameuniqueteams = []    
    try:
        for row in readCSV:
            if firstline:
                firstline=0
                continue
            HomeTeam = row[2]
            AwayTeam = row[3]
            hometeams.append(HomeTeam)
            awayteams.append(AwayTeam)
            allteams = hometeams + awayteams
            for x in allteams:
                if x not in uniqueteams:
                    uniqueteams.append(x)
            gameuniqueteams = sorted(uniqueteams)
            for x in gameuniqueteams:
                print (x)
            gameuniqueteams = (x)
            data1 = (gameuniqueteams,)
            query1 = INSERT IGNORE  INTO teams (AllTeams123) VALUES (%s);
            cursor = con.cursor()
            cursor.execute(query1, data1)



    except psycopg2.DatabaseError as e:
        if con:
            con.rollback() 
            print (Error %s % e, e)
            sys.exit(1) 
    finally:
        if con:
            con.commit()
            con.close()
Publicado el 24/11/2017 a las 12:32
por usuario
En otros idiomas...                            


2 respuestas

votos
0

Aquí está la respuesta a la pregunta que hizo:

import pprint

teams = ['Arsenal', 'Bournemouth', 'Brighton', 'Burnley', 'Chelsea']
for team in teams:
    print([team])

teams1 = [[team]
          for team in teams[:3]]
print(teams1)
pprint.pprint(teams1, width=1)
pprint.pprint(teams, width=1)

['Arsenal']
['Bournemouth']
['Brighton']
['Burnley']
['Chelsea']
[['Arsenal'], ['Bournemouth'], ['Brighton']]
[['Arsenal'],
 ['Bournemouth'],
 ['Brighton']]
['Arsenal',
 'Bournemouth',
 'Brighton',
 'Burnley',
 'Chelsea']

No es obvio para mí cómo se relaciona con su código de DB. Parece que sus allteams asignación se sangra demasiado - usted quiere eso y el tratamiento posterior a suceder después de leer todas las filas CSV. Y tal vez desea repetir for team in sorted(uniqueteams):, a continuación data1 = (team,), almacenar y que como una fila DB.

Aquí es una estructura de datos que sería útil para que usted sepa acerca de: el conjunto.

unique_teams = set(['Bournemouth', 'Brighton', 'Brighton'])
unique_teams.add('Burnley')
print(unique_teams)


{'Bournemouth', 'Burnley', 'Brighton'}

El conjunto se hará cargo de la singularidad de que, sin la molestia de hacer consultas de pertenencia repetidas.

Respondida el 24/11/2017 a las 14:04
fuente por usuario

votos
0

Su problema parece no tener nada que ver con la base de datos o el archivo, sino simplemente con la manipulación de cadenas durante la impresión.

algunos lista

foo = ["some", "words", "go", "here"]

se convierte en filas cuando se une a él por saltos de línea

>>> "\n".join(foo)
"""some
words
go
here"""

esas comillas se acaba de marcado por Python, por lo que la impresión que hace que las personas se vayan.

>>> print("\n".join(foo))
some
words
go
here

Yo diría que la estructura de datos es correcta como una lista, y que sólo debe manipular esa lista de cadenas para obtener la salida que está buscando.

Respondida el 24/11/2017 a las 15:55
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more