Netz-Weise Logo

Weisheiten - der Netz-Weise Blog

Hier finden Sie Tipps und Tricks für vor, während und nach der Schulung.
1 Minuten Lesezeit (163 Worte)

Fehler bei JSON-Import in Python: json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Python kann mit dem json-Modul Strings im JSON-Format direkt in einen Dictionary konvertieren. Zum Import aus einer JSON-Datei muss man die Datei zuerst mit open einlesen. 

import json
with open('c:\user.json') as user:
    message = json.load(user) 

Python erwartet hier, wie im JSON-Standard definiert, eine in UTF8 codierte Datei ohne BOM (Byte Order Mark). Powershell speichert bis zur Version 5.1 allerdings alle Dateien mit BOM - auch dann, wenn man explizit UTF8 als Format ausgewählt hat. Die BOM ist im ersten Byte der Datei kodiert, und entsprechend lautet auch die Fehlermeldung von Python: 

json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

Man kann die Datei unter Windows 11 einfach im Notepad öffnen und ohne BOM speichern oder alternativ die Datei in Powershell 7 öffnen, da das Problem hier gefixt wurde. 

 Alternativ kann man in Powershell 5 statt der Cmdlets Out-File direkt auf das .net-Framework zurückgreifen. 

$Json = Get-Command | ConvertTo-Json
[System.IO.File]::WriteAllLines('C:\mycommands.json', $Json) 
Symbole in der Windows-Taskleiste funktionieren ni...
Den Klingel-Sound in der WSL Bash deaktivieren
 

Kommentare

Derzeit gibt es keine Kommentare. Schreibe den ersten Kommentar!
Bereits registriert? Hier einloggen
Montag, 20. Mai 2024

Sicherheitscode (Captcha)