296 votes

Convertir une chaîne JSON en dictionnaire et non en liste

Je cherche à passer un fichier JSON et convertir les données en un dictionnaire.

Jusqu'à présent, voici ce que j'ai fait :

import json
json1_file = open('json1')
json1_str = json1_file.read()
json1_data = json.loads(json1_str)

Je m'attends à ce que json1_data soit de type dict mais en réalité il est de type list lorsque je le vérifie avec type(json1_data).

Qu'est-ce que j'ai manqué ? J'ai besoin que ce soit un dictionnaire pour accéder à l'une des clés.

-2voto

Mohit Mishra Points 19

Transmettre les données en utilisant javascript ajax à partir des méthodes get

    **//fonction javascript    
    function addnewcustomer(){ 
    //Cette fonction s'exécute lors du clic sur le bouton
    //obtenir la valeur de la zone de saisie en utilisant 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;
    //créer un json ou si nous connaissons python, cela s'appelle un dictionnaire.        
    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};
    //appliquer la méthode stringfy sur le json
            data = JSON.stringify(data);
    //insérer des données dans la base de données en utilisant 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);
              }
            }
          }

vues django

    def addNewCustomer(request):
    #si la méthode est get alors la condition est vraie et le contrôleur vérifie la ligne suivante
        if request.method == "GET":
    #cette ligne récupère le json de la requête javascript ajax.
            cust_info = request.GET.get("customerinfo")
    #remplir la valeur dans une variable qui vient de ajax.
    #c'est un json donc nous allons d'abord obtenir la valeur en utilisant la méthode json.loads.
    #cust_name est une clé qui est passée par le json javascript. 
    #comme nous savons que json est une paire clé-valeur. cust_name est une clé passée par le json javascript
            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']
    #cela affiche la valeur de la variable cust_name sur le serveur
            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("Oui, je suis arrivé ici.")**

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X