Próbuję przekazać plik JSON i przekonwertować dane do słownika.
Do tej pory zrobiłem to:
import json
json1_file = open('json1')
json1_str = json1_file.read()
json1_data = json.loads(json1_str)
Spodziewam json1_data
się, że będę dict
typem, ale tak naprawdę wyłania się jako list
typ, kiedy to sprawdzam type(json1_data)
.
czego mi brakuje? Potrzebuję tego jako słownika, aby uzyskać dostęp do jednego z klawiszy.
python
json
list
python-3.x
dictionary
akt prawny
źródło
źródło
json1_data[0]['datapoints']
.Odpowiedzi:
Twój JSON jest tablicą z jednym obiektem w środku, więc kiedy go czytasz, dostajesz listę ze słownikiem w środku. Dostęp do słownika można uzyskać, uzyskując dostęp do pozycji 0 na liście, jak pokazano poniżej:
Teraz możesz uzyskać dostęp do danych przechowywanych w punktach danych, tak jak się spodziewałeś:
datapoints[0:5][0]
nie robi tego, czego oczekujesz.datapoints[0:5]
zwraca nowy wycinek listy zawierający tylko 5 pierwszych elementów, a następnie dodanie[0]
na końcu zajmie tylko pierwszy element z wynikowego wycinka listy . To, czego potrzebujesz, aby uzyskać pożądany wynik, to zrozumienie listy :Oto prosty sposób obliczenia średniej:
Jeśli chcesz zainstalować NumPy , jest to jeszcze łatwiejsze:
Używanie
,
operatora ze składnią wycinania dla tablic NumPy ma takie zachowanie, jakiego pierwotnie oczekiwałeś przy wycinkach listy.źródło
Oto prosty fragment, który czyta się w
json
pliku tekstowym ze słownika. Zauważ, że plik json musi być zgodny ze standardem json, więc musi zawierać"
podwójne cudzysłowy, a nie'
pojedyncze cudzysłowy.Twój plik JSON dump.txt:
Skrypt Pythona:
źródło
Możesz użyć następujących opcji:
źródło
Najlepszym sposobem na załadowanie danych JSON do słownika jest użycie wbudowanego modułu ładującego json.
Poniżej znajduje się przykładowy fragment kodu, którego można użyć.
źródło
with()
operatora zamiast otwierania i zamykania pliku Ze strony:with open("welcome.txt") as file:
Patrz: pythonforbeginners.com/files/with-statement-in-pythonPracuję z kodem Python dla interfejsu API REST, więc jest on przeznaczony dla tych, którzy pracują nad podobnymi projektami.
Wyodrębniam dane z adresu URL za pomocą żądania POST, a nieprzetworzony wynik to JSON. Z jakiegoś powodu wynik jest już słownikiem, a nie listą, i od razu mogę odwoływać się do zagnieżdżonych kluczy słownika:
gdzie datapoint_1 znajduje się w słowniku punktów danych.
źródło
przekazać dane za pomocą javascript ajax z metod get
widoki django
źródło