"sind viel wahrscheinlicher als ein nie beobachteter Fehler in Python selbst in einer Funktionalität, die millionenfach am Tag auf der ganzen Welt verwendet wird": Es erstaunt mich immer wieder, wie viele Leute in diese Foren kommen.
Ein einfacher Weg, um dieses Problem zu bekommen, ist vergessen, den Strom zu schließen, den Sie zum Dumping der Datenstruktur verwenden. Ich habe gerade
>>> out = open('xxx.dmp', 'w')
>>> cPickle.dump(d, out)
>>> k = cPickle.load(open('xxx.dmp', 'r'))
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: insecure string pickle
, weshalb ich hier in erster Linie kam, weil ich nicht sehen konnte, was ich falsch gemacht habe.
Und dann dachte ich darüber eigentlich, und nicht nur hier kommen, und erkannte, dass ich es hätte tun sollen:
>>> out = open('xxx.dmp', 'w')
>>> cPickle.dump(d, out)
>>> out.close() # close it to make sure it's all been written
>>> k = cPickle.load(open('xxx.dmp', 'r'))
Leicht zu vergessen. Ich brauchte nicht, dass Leuten gesagt wurde, dass sie Idioten sind.
Wenn ich das Objekt cPickle.dump kann, warum kann ich das Objekt nicht cPickle.load? Ist es nicht seltsam? Python macht manchmal dumme Sachen. –
Ich habe das, wenn ich eingelegte Daten in der Datenbank in Django-Anwendung gespeichert. Dann änderte ich die Zeichenkette manuell über Admin-Schnittstelle und brach es. (Ich denke, dass django '\ n' Zeichen fallen ließ) – SummerBreeze
@SummerBreeze: Wie hast du es behoben. Ich stehe beim Bearbeiten mit django-admin vor dem gleichen Problem. Danke im Voraus . –