Cum de a afișa date în rânduri în loc de coarde?

voturi
-2

Chiar acum, când imprim gameuniqueteamsarată ca un șir de caractere. Pe SQL, la fiecare rând o nouă echipă se adaugă în timp ce am dori ca fiecare să arate în mod individual. În această etapă, gameuniqueteams va arăta următorul șir

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

Vreau să arate pe rând, astfel încât, atunci când am transfera la fiecare sql arată echipa într-un rând de la sine.

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

Acesta este codul meu întreg, în cazul în care acesta ajută! Ce ar trebui sa fac?

#!/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()
Întrebat 24/11/2017 la 15:32
de către utilizator
În alte limbi...                            


2 răspunsuri

voturi
0

Aici este răspunsul la întrebarea ați întrebat:

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']

Nu este evident pentru mine care este legătura cu codul DB. Se pare că allteams dvs. de atribuire este Indentat prea mult - doriți ca și prelucrarea ulterioară să se întâmple după ce a citit toate rândurile CSV. Și poate doriți să itera for team in sorted(uniqueteams):, apoi data1 = (team,), și se păstrează ca un rând DB.

Aici este o structură de date ar fi util să știți despre: set.

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


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

Setul va avea grijă de unicitate pentru tine, fără a hassle de a face interogări de membru repetate.

Publicat 24/11/2017 la 17:04
sursa de către utilizator

voturi
0

Problema ta pare să aibă nimic de-a face cu baza de date sau fișierul, ci pur și simplu cu manipularea șir în timpul imprimării.

unele liste

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

devine rânduri, atunci când i se alăture de linie nouă

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

aceste ghilimele sunt doar markup Python, astfel încât imprimarea face să dispară cei.

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

Aș argumenta că structura de date este corect ca o listă, și ar trebui să manipuleze doar că lista de siruri de caractere pentru a obține de ieșire pe care îl căutați.

Publicat 24/11/2017 la 18:55
sursa de către utilizator

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