2016-03-23 8 views
0

Ich habe Probleme beim Hinzufügen einer Indexvariablen zu dbm.dumb. Was ich damit mein Indexvariable:Python, Variable Index zu dbm.dumb Modul hinzufügen

var = b"string",b"string_one",b"string_two" 
var[0] #being an index variable 

Jetzt, wenn ich versuche und fügen Sie den folgenden Code verwenden:

database = dbm.dumb.open(z ,'c') 


database["item 1"] = x[2],y[2] 
database["item 2"] = x[0],y[0] 
database["item 3"] = x[1],y[1] 

und ich bekomme die folgenden Fehler

TypeError: values must be bytes or strings 

ich versucht habe, Die Variablen werden so geschrieben, dass sie Strings sind, aber das lässt sie nicht durch. Ich stecke fest.

+0

Verwenden Sie den 'type' Befehl, um Ihre Variablen zu testen. 'var' ist ein Tupel,' var [0] 'ist ein String, der als Eingabe erwartet wird. Sie geben jedoch zwei durch ein Komma getrennte Strings ein. Das ist keine Zeichenfolge. – roadrunner66

Antwort

0

dbm ist nicht die beste lib in Ihrem Fall zu verwenden. shelve wird Ihr Problem lösen.

import shelve 

database = shelve.open('/tmp/test.db', 'c') 
database['item 1'] = [1, 2, 3] 
database['item 2'] = 'string values' 
database['item 3'] = {'name': 'Michael', 'lastname': 'Corbett'} 
+0

Problem mit dem ist, ich habe dbm verwenden –