Jak ukazují údaje v řádcích namísto řetězce?

hlasů
-2

Právě teď, když jsem vytisknout gameuniqueteamszobrazuje jako řetězec. Na SQL, na každém řádku nový tým dostane přidáno, když chci každý ukázat individuálně. V této fázi se gameuniqueteams ukazují následující řetězec

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

Chci, aby to ukázat na řadě, takže když jsem se přenést na SQL Každý tým přehlídky v řadě sám.

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

To je celý můj kód v případě, že pomáhá! Co bych měl dělat?

#!/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()
Položena 24/11/2017 v 15:32
uživatelem
V jiných jazycích...                            


2 odpovědí

hlasů
0

Zde je odpověď na otázku, kterou žádáte:

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

To není mi jasné, jak to souvisí s vaší DB kódu. Vypadá to, že vaše allteams přiřazení se odrazil příliš mnoho - chcete, aby i následné zpracování se stane po přečtení všechny řádky CSV. A možná budete chtít opakovat for team in sorted(uniqueteams):, pak data1 = (team,), a uložit , že jako řada DB.

Zde je datová struktura, že by bylo užitečné pro vás vědět o: nastavená.

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


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

Souprava se bude starat o jedinečnosti pro vás, aniž by se museli obtěžovat tvorby opakovaných členství dotazy.

Odpovězeno 24/11/2017 v 17:04
zdroj uživatelem

hlasů
0

Váš problém vypadá, že má co do činění s databází nebo souboru, ale jednoduše se manipulaci s řetězci v průběhu tisku.

někteří seznam

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

stává řádky, když jej připojit novými řádky

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

ty uvozovky právě označujete Python, takže tisk dělá to ti odejít.

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

Řekl bych, že vaše datová struktura je správná jako seznam, a vy byste měli jen manipulovat tento seznam řetězců dostat výstup hledáte.

Odpovězeno 24/11/2017 v 18:55
zdroj uživatelem

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