IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaçage autre langage Python Discussion :

Envoi de données python en json


Sujet :

Interfaçage autre langage Python

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Envoi de données python en json
    Bonjour,

    J'ai codé un programme en python pour récupérer des données de ma carte électronique (Arduino) pour les envoyer dans un fichier json. J'ai codé le code suivant pour le moment mais ne comprends pas comment mettre à jour les données de mon fichier après action sur ma carte. J'ai crée d'ailleurs différentes bibliothèques sur mon fichier mais qu'une d'entre elles s'affichent malheureusement. Je suis un perdu pourrais t-on m'aider s'il vous plaît.


    Merci de votre compréhension et écoute.

    Cordialement,
    Jérémie
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 296
    Points : 36 793
    Points
    36 793
    Par défaut
    Salut,

    Un fichier JSON est un fichier comme un autre: on le lit, on met à jour des valeurs et on le ré-écrit complètement.

    Si vous ne voyez pas comment faire, commencez par un exemple plus simple: un fichier JSON avec pas grand chose dedans et essayez de mettre à jour un de ses attributs.

    - W

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2021
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2021
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut,

    J'ai produit ce code pour l'instant. Il met à jour les données de la carte. Cependant, cela fonctionne bien avec le sélecteur et seulement un de mes boutons poussoirs. Avec le joystick la valeur ne se met pas à jour dans le fichier et le 1er bouton poussoir ne doit pas être compté j'imagine car après appui la valeur reste à 0.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    import serial
    import time
    import json
     
    ser = serial.Serial('COM3', 115200)
    ser.timeout = 0.5  # valeur en secondes
    ser.reset_input_buffer()  # flushInput est dépréciée depuis PySerial 3.0
    ser.reset_output_buffer()  # idem pour flushOutput
     
    etape = 0
     
     
    while True:
        try:
            msg_recu = ser.readline().decode('utf8').rstrip().lower()  # réception puis décodage puis retrait des '\r\n' (avec rstrip()) puis mise en minuscule)
        except serial.SerialTimeoutException:
            print("Erreur: Sortie par Timeout de lecture")
            print(f"Pas de message reçu dans l'intervalle de temps indiqué ({ser.timeout}s)")
            break
        except serial.SerialException:
            print("Erreur: Erreur d'E/S du port série")
            break
        else:
            print((msg_recu))
            if msg_recu.startswith("boutons"):
                etape = 1
            elif msg_recu.startswith("selecteur"):
                etape = 10
            elif msg_recu.startswith("joystick"):
                etape = 20
            elif msg_recu == '':  # on passe ici si la chaine est vide (correspond à un changement de type de message)
                etape = 0  # ça évite de le tester à chaque type de message
            elif etape == 1:
                # on passe ici si on a eu le message "boutons poussoirs" et que l'on a reçu le 1er message suivant
                boutons = int(msg_recu)
                dictionnaire ={"boutons": boutons}
                with open("data.json", "w", encoding='utf-8') as l:
                    json.dump(dictionnaire, l)
                with open("data.json", "r") as l:
                    dat = json.load(l)
                # on traite la valeur reçue (qui peut être la 1ère ou la 2nde ou ...)
            elif etape == 10:
                # on passe ici si on a eu le message "sélecteur" et une des valeurs
                selecteur = int(msg_recu)
                dico ={"selecteur": selecteur }
                with open("data.json", "w", encoding='utf-8') as p:
                    json.dump(dico, p)
                with open("data.json", "r") as p:
                    donnee = json.load(p)
                # on traite la valeur reçue
            elif etape == 20:
                # on passe ici si on a eu le message "joystick" et une des valeurs
                joystick = float(msg_recu)
                my_dictionnaire ={"joystick": joystick}
                with open("data.json","w",encoding= 'utf-8') as f:
                    json.dump(my_dictionnaire,f)
                with open("data.json","r") as f:
                    data_donnee = json.load(f)
    ser.close()

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 296
    Points : 36 793
    Points
    36 793
    Par défaut
    Salut,

    A défaut de comprendre qu'en écrivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
               dictionnaire ={"boutons": boutons}
                with open("data.json", "w", encoding='utf-8') as l:
                    json.dump(dictionnaire, l)
                with open("data.json", "r") as l:
                    dat = json.load(l)
    vous n'aurez que la partie boutons dans votre fichier JSON, vous pourriez "tester" en dehors de votre application et réfléchir un peu a ce que vous codez plutôt que de taper des lignes au petit bonheur la chance et constater que çà ne marche pas.

    - W

Discussions similaires

  1. Récupérer plusieurs donnée dans fichier JSON avec Python 3
    Par Antho000 dans le forum Réseau/Web
    Réponses: 6
    Dernier message: 04/04/2019, 17h03
  2. [Python 2.X] Python et Excel, envoi de données
    Par gerday.m dans le forum Général Python
    Réponses: 2
    Dernier message: 21/08/2015, 14h46
  3. [JSON] Envoi des données à une Base MySQL
    Par VB 2008 dans le forum Android
    Réponses: 2
    Dernier message: 16/08/2012, 15h35
  4. [PHP-JS] Envoi de données sur une même page...
    Par dudux dans le forum Langage
    Réponses: 8
    Dernier message: 14/09/2005, 13h51
  5. [debutant]envoie de données
    Par miloux32 dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 14/08/2003, 10h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo