Vor ungefähr einem Jahr bemerkte ich, dass, als ich versuchte, meine Python-Notizbücher zu öffnen, die ich auf einem Universitätsserver gespeichert hatte, einen Fehler "Notebook scheint nicht JSON zu sein" bekam. Zuerst war ich schockiert und bestürzt, dass all meine harte Arbeit für immer weg war, aber als ich die Akte in Emacs inspizierte, sah ich, dass alles da war, außer dass das Ende des Lebens eine lange Liste von^@ Symbolen enthielt, die die JSON-Interpreter (Beispiel unten).Warum fügt jupyter Notebook eine lange Liste von^@ Symbolen am Ende der ipynb Datei an?
einfach diese^@ Symbole Löschen wiederhergestellt die Datei. Seitdem ich jedes Mal, wenn ich diesen JSON-Fehler bekomme (was ziemlich oft ist), öffne ich einfach Emacs und lösche die Symbole, aber es wird nervig.
Kann mir jemand erklären, warum das passiert und kann es verhindert werden? Soweit ich das beurteilen kann, passiert dies nur, wenn ich mit ipynb-Dateien von einem Server arbeite, mit dem mein persönlicher Laptop (MacBook Pro OS X 10.12.6) über smb verbunden ist. Es passiert nie, wenn die ipynb-Dateien lokal gespeichert werden. Ich bevorzuge es, vom Server zu arbeiten, weil alles automatisch gesichert wird und ich manchmal verschiedene Computer verwende, so dass ich immer Zugriff auf meine Dateien habe.
Ich weiß, dass die Datei beschädigt ist, und ich weiß, wie man es behebt (löschen Sie einfach alle^@). Es wurde kein Absturz oder USB-Laufwerk entfernt und ich verliere keine Daten, wenn dies passiert. Ich speichere einfach meine ganze Arbeit, schließe jupyter Notebook, schließe dann die Serververbindung. Wenn ich mich wieder mit dem Server verbinde und meine Dateien öffne, haben sie manchmal die^@ Symbole, und manchmal nicht! Also meine Frage ist, wie verhindere ich das? – Bow
Sie schließen die Verbindung abrupt. Vielleicht leeren Sie die Dateisystem-Caches, bevor Sie die Verbindung schließen! –
Danke für die Einsicht! – Bow