Vinnaren i pepparkakshustävlingen!
2011-09-01, 23:41
  #1
Medlem
skitkreativs avatar
Hej,

Är ny med python och programmeringen, men tycker att jag börjar 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åååå många 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 får grep om det som jag hämtar ut från databasen,
1. jag har satt fälten till att vara TEXT och när det hämtas ut så kommer det som unicode strängar, dvs det är u'text' som skrivs ut och inte bara en fin sträng.
2. jag vill gärna få ner det i en dict.

Jag använde Osx 10.6.8 med python 2.6.1, vill heller inte använda mig av bibliotek som inte finns som standard då det ska vara lätt för vem som att köra 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

	

när jag har skrivit in saker och hämtar ut det så kommer det ut i detta format, och det är ju inte så snyggt. jag tänker mig det mer som en fin lista med kolumner.
men kan man få över det till en dict så är det lite mer lätthanterligt 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 förklarar mig dålig så peta på mig, om ni har några goda förslag 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 frågeställning dök upp nyligen i https://www.flashback.org/t1616312, så du kanske vill läsa igenom den tråden och se om svaret dyker upp där...
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 frågeställning dök upp nyligen i https://www.flashback.org/t1616312, så du kanske vill läsa igenom den tråden och se om svaret dyker upp där...

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 trådskaparen av den tråden som vhe postade. Om du har några funderingar får du gärna fråga! Koden som jag använde denna metod till ligger uppe på github (https://github.com/iderik/AltExt), så du kan ju titta i filen "dbio.py". När du tittar på den koden, tänk på att "NewPlayer" och "GetPlayer" använder olika row factories, alltså line 24 och 41.
Citera
2011-09-08, 22:29
  #5
Medlem
Byt ut de sista raderna mot följande:

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

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback