2016-09-27 10 views
32

W języku Python, jaka jest różnica między json.load() i json.loads()?Jaka jest różnica między funkcjami json.load() i json.loads() w Pythonie?

Chyba że load() funkcja musi być używany z obiektu pliku (Muszę zatem, aby użyć menedżera kontekstowe), podczas gdy ładunki() funkcja wziąć ścieżkę do pliku jako ciąg. To trochę zagmatwane.

Czy literę "s" w json.loads() ważne dla ciąg?

Wielkie dzięki za odpowiedzi!

+0

Czytaliście dokumentację tych metod? – JJJ

+0

* 'json.loads (s, *)' - Deserializacja 's' (instancja' str', 'bytes' lub' bytearray' zawierająca dokument JSON) * - https://docs.python.org/3.6/ library/json.html – deceze

Odpowiedz

37

Tak, oznacza ciąg. Funkcja json.loads nie pobiera ścieżki pliku, ale zawartość pliku jako ciąg znaków. Zobacz dokumentację pod numerem https://docs.python.org/2/library/json.html!

+3

Powiązany artykuł wskazuje na złą wersję pythona. Pytanie jest oznaczone jako 2.7. – RvdK

+1

Thankt, naprawiłem to. – Gijs

14

Dokumentacja jest całkiem jasne: https://docs.python.org/2/library/json.html

json.load(fp[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]]) 

Cofnięcie FP (a .read() - wspieranie plikopodobny obiekt zawierający dokumentu JSON) do obiektu w Pythonie przy użyciu tej tabeli konwersji.

json.loads(s[, encoding[, cls[, object_hook[, parse_float[, parse_int[, parse_constant[, object_pairs_hook[, **kw]]]]]]]]) 

Cofnięcie S (STR lub Unicode przykład zawierającego dokument JSON) do obiektu Python użyciu tej tabeli konwersji.

Więc load jest do pliku, loads dla string