Ich bin sehr neu in Python-Programmierung, so habe ich das folgende Python-Skript erstellt, um in einem Ordner zu iterieren, die 3000 oder mehr JSON-Dateien enthalten, und ich weiß nicht, wie in diesen 3000 zu iterieren JSON-Dateien, die nicht manuell in das Skript eingefügt werden, und ich muss einen bestimmten Pfad angeben, wo sich auch die JSON-Dateien befinden, und ich weiß nicht, wie ich sie deklariere.Wie zu lösen bekommen Json Daten mit Python
import json
all_results = {}
json_file_list = ['1.json', '2.json']
for file in json_file_list:
with open(file) as json_file:
json_data = json.load(json_file)
for key, value in json_data.iteritems():
if 'result' in value:
all_results[key] = value['result']
return all_results
nach meinem Python-Skript ausgeführt habe ich folgende Fehlermeldung:
File "getResult.py", line 20
return all_results
SyntaxError: 'return' outside function
und das ist, wie wie meine jsons Dateien sucht
{ "igt @ gem_reloc_overflow @ Single-Überlauf": { "Typ": "TestResult", "Befehl": "/ home/gfx/Intel-Grafik/Intel-gpu-tools/Tests/gem_reloc_overflow - Run-Subtest Single-Überlauf", "dmesg": "", "umgebung": "PIGLIT_PLATFORM = \" mixed_glx_egl \ "PIGLIT_SOURCE_DIR = \"/home/gfx/intel-grafiken/intel-gpu-tools/piglit \ "", "err": "(gem_reloc_overflow: 19562) Kritisch: Test Assertionsfehler Funktion reloc_tests, Datei gem_reloc_overflow.c: 260: \ n (gem_reloc_overflow: 19562) Kritisch: fehlgeschlagen Assertion: gem_execbuf (fd, & execbuf) == -14 \ n (gem_reloc_overflow: 19562) KRITISCH: Fehler: -22! = -14 \ nUnterster Überlauf fehlgeschlagen. \ N **** DEBUG **** \ n (gem_reloc_overflow: 19562) DEBUG: relocation_count = 4294967295 \ n (gem_reloc_overflow: 19562) KRITISCH : Test assertion failure-Funktion recover_tests, Datei gem_reloc_overflow.c: 260: \ n (gem_reloc_overflow: 19562) Kritisch: fehlgeschlagene Zusicherung: __gem_execbuf (fd, & execbuf) == -14 \ n (gem_reloc_overflow: 19562) Kritisch: Fehler: -22 ! = -14 \ n **** ENDE **** \ n ", "exception": null, "out": "IGT-Version: 1.14-g1e9a3ac (x86_64) (Linux: 4.6.0-rc4-drm-intel-nightly-ww17-commit-1e81bac + x86_64) \ nStack-Trace: \ n # 0 [__igt_fail_assert + 0x101] \ n # 1 [rek_tests + 0x6d6] \ n # 2 [+ 0x6d6] \ nUnterster Überlauf: FAIL (8.469s) \ n ", " pid ": 19562, " Ergebnis ": "nicht bestanden", "Return": 99, "Subtests": { " __type ": "Subtests" }, "Zeit": { " Typ ": "TimeAttribute", " Ende ": 1462072402.5360818, " Start ": 1462072393.7328644 }, " traceback ": null } }
jede Hilfe ist willkommen, dank
Dank, aber mit diesem Befehl: onlyfiles = [f für f in listdir (mypath), wenn isfile (join (mypath, f))], ich nur haben Die Namen der JSON-Dateien, und ich brauche den vollständigen Pfad mit den Namen, weil Python mir zeigt, dass es die Dateien nicht finden kann – shaveax