Ich habe eine Python-Anwendung, die die Bokeh-Bibliothek verwendet, um ein Google Maps-Diagramm mit GMapPlot anzuzeigen. Um den Kartenstil mit GMapOptions zu ändern, lese ich this .JSON-Datei, die lokal bei ./map/styles.JSON gespeichert und konvertiert es in eine Zeichenfolge. Auf Win10 funktioniert dies gut mitÖffnen von .JSON-Datei schlägt auf Ubuntu fehl
with open(r"./map/styles.JSON", encoding='utf-8-sig') as file:
styles = file.read().splitlines()
styles="".join(styles)
Allerdings, wenn ich die Anwendung auf einem Ubuntu-Server läuft ein Fehler
Traceback (most recent call last):
File "photo_map.py", line 22, in <module>
with open(r"./map/styles.JSON", encoding='utf-8-sig') as file:
TypeError: 'encoding' is an invalid keyword argument for this function
Ohne die Codierung Anweisung erhöht ein neuer Fehler
wirdValueError: expected JSON text, got '\xef\xbb\xbf[...
..."#dadada"\r\n }\r\n ]\r\n }\r\n]'
angehoben
Ich habe auch versucht, mit dem JSON-Modul und decode() -Methode ohne Erfolg zu arbeiten.
Das Deklarieren einer Variablen in meinem Python-Skript, das die .JSON-Daten als String enthält, funktioniert auf Win10 und Ubuntu einwandfrei, ist aber offensichtlich nur ein Workaround.
Danke für Ihre Hilfe!
Sind Sie sicher, dass der Ubuntu-Server Python 3.x ausführt? –
Sie führen es mit Python 2.x. Versuchen Sie: 'mit codecs.open (" ./ map/styles.JSON "," utf-8 ") als Datei: ...' (Vergessen Sie natürlich nicht, 'Codecs' zu importieren). – zwer