Πώς να δείτε τα δεδομένα σε σειρές αντί χορδών;

ψήφοι
-2

Αυτή τη στιγμή, κατά την εκτύπωση gameuniqueteamsδείχνει ως ένα string. Σε SQL, σε κάθε σειρά μία νέα ομάδα παίρνει πρόσθεσε, ενώ θέλω καθένα να δείξει ξεχωριστά. Σε αυτό το στάδιο, gameuniqueteams θα εμφανιστεί η ακόλουθη συμβολοσειρά

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

Θέλω να δείξει ανά σειρά, έτσι ώστε όταν το μεταφέρετε σε SQL κάθε ομάδα παρουσιάζει σε μια σειρά από μόνη της.

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

Αυτό είναι ολόκληρο το κωδικό μου σε περίπτωση που αυτό βοηθά! Τι πρέπει να κάνω?

#!/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()
Δημοσιεύθηκε 24/11/2017 στις 15:32
χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
0

Εδώ είναι η απάντηση στην ερώτηση που ρώτησε:

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

Δεν είναι προφανές για μένα πως αυτό σχετίζεται με τον κωδικό DB σας. Μοιάζει allteams αποστολή σας είναι εσοχή πάρα πολύ - θέλετε ότι και η επακόλουθη επεξεργασία για να συμβεί μετά την ανάγνωση όλες τις σειρές CSV. Και ίσως θέλετε να επαναλάβει for team in sorted(uniqueteams):, τότε data1 = (team,), και να αποθηκεύουν ότι η σειρά DB.

Εδώ είναι μια δομή δεδομένων θα ήταν χρήσιμο να γνωρίζετε για: το σύνολο.

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


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

Το σύνολο θα φροντίσει για τη μοναδικότητά σας, χωρίς την ταλαιπωρία του κάνει επανειλημμένες ερωτήσεις των μελών.

Απαντήθηκε 24/11/2017 στις 17:04
πηγή χρήστη

ψήφοι
0

Το πρόβλημά σας φαίνεται να έχουν καμία σχέση με τη βάση δεδομένων ή το αρχείο, αλλά απλώς με το χειρισμό χορδών κατά την εκτύπωση.

μερικά λίστα

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

γίνεται σειρές όταν το ενταχθούν με νέες γραμμές

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

αυτά τα εισαγωγικά είναι απλά markup από Python, έτσι ώστε η εκτύπωση να κάνει αυτά που πάει μακριά.

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

Θα έλεγα ότι η δομή των δεδομένων σας είναι σωστή, όπως μια λίστα, και θα πρέπει να χειριστείτε ακριβώς αυτό λίστα των χορδών για να πάρει το αποτέλεσμα που ψάχνετε.

Απαντήθηκε 24/11/2017 στις 18:55
πηγή χρήστη

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