2011-09-01, 23:41
  #1
Medlem
skitkreativs avatar
Hej,

r ny med python och programmeringen, men tycker att jag brjar f lite riktigt grepp om python nu.
Jag har skrivit ett litet spel och vill till det ha en liten highscore, (senare vill jag ocks att det ska byggas ihop mot en server s att alla ( s mnga kommer ju att spela detta spelet ) som spelar har samma highscore(databas). Men det ska inte ta fokus just nu!

Mitt problem r att jag inte fr grep om det som jag hmtar ut frn databasen,
1. jag har satt flten till att vara TEXT och nr det hmtas ut s kommer det som unicode strngar, dvs det r u'text' som skrivs ut och inte bara en fin strng.
2. jag vill grna f ner det i en dict.

Jag anvnde Osx 10.6.8 med python 2.6.1, vill heller inte anvnda mig av bibliotek som inte finns som standard d det ska vara ltt fr vem som att kra det s roliga spelet.


Kod:
import sqlite3
import datetime

	
def ct(DB):
	
	conn = sqlite3.connect(DB)
	c = conn.cursor()
	c.execute('create table testTable(name TEXT, data TEXT, date TEXT)')
	conn.commit()
	c.close
	

def input(DB, NAME, DATA):
	
	conn = sqlite3.connect(DB)
	c = conn.cursor()
	DATE = datetime.date.today()
	t = [NAME, DATA, DATE]
	c.execute('insert into testTable values(?, ?, ?)', t)
	conn.commit()
	c.close()
	

def output():
	
	conn = sqlite3.connect('testDB')
	c = conn.cursor()
	l = c.execute('select * from testTable')
	for row in l:
		print row

	

nr jag har skrivit in saker och hmtar ut det s kommer det ut i detta format, och det r ju inte s snyggt. jag tnker mig det mer som en fin lista med kolumner.
men kan man f ver det till en dict s r det lite mer ltthanterligt tror jag.
Kod:
(u'text', u'nu ska vi se', u'2011-09-01')
(u'text', u'vad vi kan ge', u'2011-09-01')

om jag frklarar mig dlig s peta p mig, om ni har ngra goda frslag p ndringar s blir jag glad!

tackar och bockar!
__________________
Senast redigerad av skitkreativ 2011-09-01 kl. 23:45.
Citera
2011-09-01, 23:53
  #2
Moderator
vhes avatar
Inte helt hundra p exakt vad du r ute efter, men en liknande frgestllning dk upp nyligen i https://www.flashback.org/t1616312, s du kanske vill lsa igenom den trden och se om svaret dyker upp dr...
Citera
2011-09-01, 23:58
  #3
Medlem
skitkreativs avatar
Citat:
Ursprungligen postat av vhe
Inte helt hundra p exakt vad du r ute efter, men en liknande frgestllning dk upp nyligen i https://www.flashback.org/t1616312, s du kanske vill lsa igenom den trden och se om svaret dyker upp dr...

Herregud, hur kunde jag missa den.
Ska kolla igenom! Tack
Citera
2011-09-02, 11:27
  #4
Medlem
Ideriks avatar
Hej skitkreativ

Det r jag som r trdskaparen av den trden som vhe postade. Om du har ngra funderingar fr du grna frga! Koden som jag anvnde denna metod till ligger uppe p github (https://github.com/iderik/AltExt), s du kan ju titta i filen "dbio.py". Nr du tittar p den koden, tnk p att "NewPlayer" och "GetPlayer" anvnder olika row factories, allts line 24 och 41.
Citera
2011-09-08, 22:29
  #5
Medlem
Byt ut de sista raderna mot fljande:

Kod:
for row in l:
    for str in row:
         print('%s    '%str),
    print
print
Genom att skriva ut varje element i listan row fr sig och uttryckligen sga att det r en strng (%s) kommer du runt problemet.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in