Ihr Basiselement ist eine Liste. Versuchen json1_data[0]['datapoints'].
– gddc
20. Oktober 13 um 22:05 Uhr
Bei einer Vermutung würde ich sagen, dass Ihr Json eine Liste ist, kein Wörterbuch
– Joran Beasley
20. Oktober 13 um 22:05 Uhr
Nach dem, was unser Ausbilder uns gezeigt hat, als er (json1_data) eingegeben hat, wurde sein Typ als „dict“ angezeigt. Vielen Dank für die Hilfe an alle!
– Lawchit
20. Oktober 13 um 22:11 Uhr
DaoWen
Ihr JSON ist ein Array mit einem einzelnen Objekt darin, wenn Sie es also einlesen, erhalten Sie eine Liste mit einem Wörterbuch darin. Sie können auf Ihr Wörterbuch zugreifen, indem Sie auf Element 0 in der Liste zugreifen, wie unten gezeigt:
json1_data = json.loads(json1_str)[0]
Jetzt können Sie auf die gespeicherten Daten zugreifen Datenpunkte so wie du es erwartet hast:
datapoints = json1_data['datapoints']
Ich habe noch eine Frage, falls jemand beißen kann: Ich versuche, den Durchschnitt der ersten Elemente in diesen Datenpunkten zu nehmen (dh Datenpunkte[0][0]). Nur um sie aufzulisten, habe ich versucht, Datenpunkte zu machen[0:5][0] aber alles, was ich bekomme, ist der erste Datenpunkt mit beiden Elementen, anstatt die ersten 5 Datenpunkte zu erhalten, die nur das erste Element enthalten. Gibt es eine Möglichkeit, dies zu tun?
datapoints[0:5][0] macht nicht was du erwartest. datapoints[0:5] gibt ein neues Listensegment zurück, das nur die ersten 5 Elemente enthält, und fügt dann hinzu [0] Am Ende wird nur das erste Element verwendet aus diesem resultierenden Listensegment. Was Sie verwenden müssen, um das gewünschte Ergebnis zu erzielen, ist a Listenverständnis:
[p[0] for p in datapoints[0:5]]
Hier ist eine einfache Möglichkeit, den Mittelwert zu berechnen:
sum(p[0] for p in datapoints[0:5])/5. # Result is 35.8
Wenn Sie bereit sind zu installieren NumPydann geht es noch einfacher:
Verwendung der , Operator mit der Slicing-Syntax für die Arrays von NumPy hat das Verhalten, das Sie ursprünglich mit den Listen-Slices erwartet haben.
Danke dafür! Ich habe noch eine Frage, falls jemand beißen kann: Ich versuche, den Durchschnitt der ersten Elemente in diesen Datenpunkten zu nehmen (dh Datenpunkte[0][0]). Nur um sie aufzulisten, habe ich versucht, Datenpunkte zu machen[0:5][0] aber alles, was ich bekomme, ist der erste Datenpunkt mit beiden Elementen, anstatt die ersten 5 Datenpunkte zu erhalten, die nur das erste Element enthalten. Gibt es eine Möglichkeit, dies zu tun?
– Lawchit
20. Oktober 13 um 22:40 Uhr
@lawchit – Siehe meine aktualisierte Antwort. Wenn Sie mit diesen Daten rechnen möchten, empfehle ich dringend die Verwendung von NumPy.
– DaoWen
21. Oktober 13 um 0:35 Uhr
Dieser verdient weitere 100 Punkte 🙂 Ich habe einen ganzen Tag nach dieser Lösung gesucht
– Maman
4. Februar 20 um 19:22 Uhr
Ich habe Stunden damit verschwendet, herauszufinden, warum meine gelesenen json-Daten so viel Chaos sind. Diese Antwort hat mich gerettet. Danke für das Teilen.
– Raymond
Vor 2 Tagen
Hier ist ein einfacher Ausschnitt, der in a gelesen wird json Textdatei aus einem Wörterbuch. Beachten Sie, dass Ihre JSON-Datei dem JSON-Standard folgen muss, also muss sie es haben " dann eher doppelte Anführungszeichen ' Einzelzitate.
Ihre JSON dump.txt-Datei:
{"test":"1", "test2":123}
Python-Skript:
import json
with open('/your/path/to/a/dict/dump.txt') as handle:
dictdump = json.loads(handle.read())
Benutzergast
Sie können Folgendes verwenden:
import json
with open('<yourFile>.json', 'r') as JSON:
json_dict = json.load(JSON)
# Now you can use it like dictionary
# For example:
print(json_dict["username"])
Sampat Kumar
Der beste Weg, JSON-Daten in das Wörterbuch zu laden, ist, den integrierten JSON-Loader zu verwenden.
Unten ist das Beispiel-Snippet, das verwendet werden kann.
import json
f = open("data.json")
data = json.load(f))
f.close()
type(data)
print(data[<keyFromTheJsonFile>])
Ich arbeite mit einem Python-Code für eine REST-API, also ist dies für diejenigen, die an ähnlichen Projekten arbeiten.
Ich extrahiere Daten aus einer URL mit einer POST-Anfrage und die Rohausgabe ist JSON. Aus irgendeinem Grund ist die Ausgabe bereits ein Wörterbuch, keine Liste, und ich kann sofort auf die verschachtelten Wörterbuchschlüssel verweisen, wie folgt:
Dabei befindet sich datapoint_1 im Datapoints-Wörterbuch.
DanielM
Übergeben Sie die Daten mit Javascript Ajax von Get-Methoden
**//javascript function
function addnewcustomer(){
//This function run when button click
//get the value from input box using getElementById
var new_cust_name = document.getElementById("new_customer").value;
var new_cust_cont = document.getElementById("new_contact_number").value;
var new_cust_email = document.getElementById("new_email").value;
var new_cust_gender = document.getElementById("new_gender").value;
var new_cust_cityname = document.getElementById("new_cityname").value;
var new_cust_pincode = document.getElementById("new_pincode").value;
var new_cust_state = document.getElementById("new_state").value;
var new_cust_contry = document.getElementById("new_contry").value;
//create json or if we know python that is call dictionary.
var data = {"cust_name":new_cust_name, "cust_cont":new_cust_cont, "cust_email":new_cust_email, "cust_gender":new_cust_gender, "cust_cityname":new_cust_cityname, "cust_pincode":new_cust_pincode, "cust_state":new_cust_state, "cust_contry":new_cust_contry};
//apply stringfy method on json
data = JSON.stringify(data);
//insert data into database using javascript ajax
var send_data = new XMLHttpRequest();
send_data.open("GET", "http://localhost:8000/invoice_system/addnewcustomer/?customerinfo="+data,true);
send_data.send();
send_data.onreadystatechange = function(){
if(send_data.readyState==4 && send_data.status==200){
alert(send_data.responseText);
}
}
}
Django-Ansichten
def addNewCustomer(request):
#if method is get then condition is true and controller check the further line
if request.method == "GET":
#this line catch the json from the javascript ajax.
cust_info = request.GET.get("customerinfo")
#fill the value in variable which is coming from ajax.
#it is a json so first we will get the value from using json.loads method.
#cust_name is a key which is pass by javascript json.
#as we know json is a key value pair. the cust_name is a key which pass by javascript json
cust_name = json.loads(cust_info)['cust_name']
cust_cont = json.loads(cust_info)['cust_cont']
cust_email = json.loads(cust_info)['cust_email']
cust_gender = json.loads(cust_info)['cust_gender']
cust_cityname = json.loads(cust_info)['cust_cityname']
cust_pincode = json.loads(cust_info)['cust_pincode']
cust_state = json.loads(cust_info)['cust_state']
cust_contry = json.loads(cust_info)['cust_contry']
#it print the value of cust_name variable on server
print(cust_name)
print(cust_cont)
print(cust_email)
print(cust_gender)
print(cust_cityname)
print(cust_pincode)
print(cust_state)
print(cust_contry)
return HttpResponse("Yes I am reach here.")**
.
7589200cookie-checkKonvertieren von JSON-String in Dictionary Not Listyes
Können Sie uns ein Beispiel Ihrer JSON-Datei zeigen?
– Mac
20. Oktober 13 um 21:58 Uhr
Ich versuche, auf den Schlüssel „Datenpunkte“ zuzugreifen graphit.sdsc.edu:8443/render/…
– Lawchit
20. Oktober 13 um 22:03 Uhr
Ihr Basiselement ist eine Liste. Versuchen
json1_data[0]['datapoints']
.– gddc
20. Oktober 13 um 22:05 Uhr
Bei einer Vermutung würde ich sagen, dass Ihr Json eine Liste ist, kein Wörterbuch
– Joran Beasley
20. Oktober 13 um 22:05 Uhr
Nach dem, was unser Ausbilder uns gezeigt hat, als er (json1_data) eingegeben hat, wurde sein Typ als „dict“ angezeigt. Vielen Dank für die Hilfe an alle!
– Lawchit
20. Oktober 13 um 22:11 Uhr