कैसे स्ट्रिंग के बजाय पंक्तियों में डेटा दिखाने के लिए?

वोट
-2

अभी, जब मैं प्रिंट gameuniqueteamsयह एक स्ट्रिंग के रूप को दर्शाता है। एसक्यूएल पर, प्रत्येक पंक्ति में एक नई टीम जोड़ा जाता है, जबकि मैं प्रत्येक अलग-अलग दिखाना चाहते हैं। इस स्तर पर, 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']

यह मेरे लिए स्पष्ट है कि कैसे अपने डीबी कोड से संबंधित नहीं है। यह अपने 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"""

उन उद्धरण चिह्नों सिर्फ अजगर द्वारा मार्कअप कर रहे हैं, तो यह मुद्रण उन दूर जाना पड़ता है।

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