Ich versuche, eine SQLalchemy-Datenbank zu aktualisieren. Es wird ein Fehler ausgegeben, der auf der Zeichenfolge basiert, die ich in die Abfrage zu implementieren versuche. Ich möchte den Link nicht fest codieren, sondern die Variable verwenden, während ich meine Datenbank durchlaufe.
print (u)
(u'http://32rfckwuorlf4dlv.ca/linklist/1-general\n',)
currentlink = (str(u)[:-3][1:])
print currentlink
u'http://32rfckwuorlf4dlv.ca/linklist/1-general\n'
Dies schlägt fehl ..
x = Item.query.filter_by(link=currentlink).first()
print x
try:
print x.id
x.title = 'test'
except Exception as e:
print(str(e))
db.session.commit()
Drucke: Das Objekt 'NoneType' hat kein Attribut 'id'.
Das funktioniert..
x = Item.query.filter_by(link=u'http://32rfckwuorlf4dlv.ca/linklist/1-general\n').first()
print x
try:
print x.id
x.title = 'test'
except Exception as e:
print(str(e))
db.session.commit()
Drucke: http://32rfckwuorlf4dlv.ca/linklist/1-general\n '> Drucke: 90
Okay, der Grund ist, dass currentlink
das eigentlich "u'http://32rfckwuorlf4dlv.ca/linklist/1-general\\n"
nicht so ist u'http://32rfckwuorlf4dlv.ca/linklist/1-general\n'
.
Vorausgesetzt, es u
ist ein tuple
, sollten Sie tun
currentlink = u[0]
stattdessen.
Wenn Sie möchten, dass Ihr Beispiel funktioniert (übrigens nicht empfohlen, nur zu Erbauungszwecken):
currentlink = str(u)[:-3][3:].replace("\\n", "\n")
Wenn u
a str
statt, müssen Sie herausfinden, warum es eine ist , str
anstatt ein tuple
.
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen