Mam około 2000 plików JSON, które próbuję uruchomić przez program w języku Python. Problem występuje, gdy plik JSON ma niepoprawny format. (Błąd: ValueError: No JSON object could be decoded
) Z kolei nie mogę go odczytać w moim programie.Python: sprawdzanie poprawności i formatowanie plików JSON
Jestem obecnie robi coś jak poniżej:
for files in folder:
with open(files) as f:
data = json.load(f); # It causes an error at this part
wiem, że jest niedostępny do walidacji metod i formatowanie plików JSON, ale jest tam programistyczny sposobem sprawdzenia i sformatować te pliki? Jeśli nie, czy istnieje darmowa/tania alternatywa dla utrwalenia wszystkich tych plików w trybie offline, tj. Po prostu uruchom program w folderze zawierającym wszystkie pliki JSON i formatuje je zgodnie z wymaganiami?
rozwiązać za pomocą @ komentarzu Reece za:
invalid_json_files = []
read_json_files = []
def parse():
for files in os.listdir(os.getcwd()):
with open(files) as json_file:
try:
simplejson.load(json_file)
read_json_files.append(files)
except ValueError, e:
print ("JSON object issue: %s") % e
invalid_json_files.append(files)
print invalid_json_files, len(read_json_files)
Okazuje się, że byłem zapisywania pliku, który nie jest w formacie JSON w moim katalogu roboczym, który był w tym samym miejscu czytałem dane. Dzięki za pomocne sugestie.
A jak zamierzasz naprawić te pliki, jeśli nie wiesz, gdzie dokładnie znajduje się błąd? – vaultah
Co nie jest dobrze sformatowane? Zdajesz sobie sprawę, że przesłoniłeś obiekt danych dla każdego pliku, prawda? – Llopis
@frostnational Miałem wrażenie, że program przejrzy niektóre problemy, które mogą wystąpić w plikach JSON i automatycznie naprawi je, jeśli wystąpią. Na przykład. '{text:" foo "} text2:" bar "' -> brak przecinka oddzielającego dwa dykta. @Llopis: tak, robię tak, jak chcę, aby program działał na każdym pliku JSON. Być może dobrze sformatowany może brakować kolumny między dyktami. – Black