Utliser json dans un script python

Forum dédié aux problématiques concernant les scripts pour DomoticZ.
Entourez votre code et les logs avec les balises nommées code grâce au bouton <\>.
Steph38
Messages : 44
Inscription : 12 août 2015, 18:13

Utliser json dans un script python

Message par Steph38 »

Bonjour,
J'esseye de recuperer une valeur presente dans domoticz en utilisant un script python, mais cela ne fonctionne pas.

Code : Tout sélectionner

#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import json
import requests
from requests.auth import HTTPBasicAuth


############# Parametres ################################# 

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres de Domoticz
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_ip='192.168.1.103'
domoticz_port='8080'
user=''
password=''

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# les parametres du periphérique
# l'idx Domoticz
# la chaine  recherchée (sensible à la casse)
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

domoticz_idx='14'
terme_recherche='Data'


#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Exemple 
#http://192.168.1.82:8080/json.htm?type=devices&rid=44
# renvoie 
#{ "5MinuteHistoryDays" : 1, "ActTime" : 1429029448, "AllowWidgetOrdering" : true, "DashboardType" : 0, "Latitude" : "44.495849", "Longitude" : "-0.146575", "MobileType" : 0, "TempScale" : 1.0, "TempSign" : "C", "WindScale" : 1.0, "WindSign" : "m/s", "dontcachehtml" : true, "result" : [ { "BatteryLevel" : 255, "Counter" : "4.826", "CounterToday" : "0", "CustomImage" : 0, "Data" : "0, 4.826", "Favorite" : 0, "HardwareID" : 7, "HardwareName" : "Dummy", "HaveTimeout" : true, "ID" : "1407B", "LastUpdate" : "2015-03-13 15:20:08", "Name" : "Geranium_Lumiere_valeur", "Notifications" : "false", "PlanID" : "0", "Protected" : false, "ShowNotifications" : true, "SignalLevel" : 12, "SubType" : "RFXMeter counter", "SwitchTypeVal" : 3, "Timers" : "false", "Type" : "RFXMeter", "TypeImg" : "counter", "Unit" : 1, "Used" : 1, "XOffset" : "0", "YOffset" : "0", "idx" : "44" } ], "status" : "OK", "title" : "Devices" }
#je vois BatteryLevel : 255
# je veux recuperer la valeur de BatteryLevel
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

# la valeur est renvoyée dans la variable nommée val

###############  fin des parametres #############################



domoticzurl = 'http://192.168.1.103:8080/json.htm?type=devices&rid='+str(domoticz_idx)
r=requests.get(domoticzurl,auth=HTTPBasicAuth(user,password))
status=r.status_code
print (status)
if status == 200:
# l'API renvoie 200 si tout est OK
    domoticzjson=r.json()
    for i, v in enumerate(domoticzjson["result"]):
       val= domoticzjson["result"][i][terme_recherche] 
       print (terme_recherche,'= ',val)
J'ai ce message d'erreur et je ne trouve pas de solution

Domoticzjason=r.json()
typeError: 'dict' object is not callable

Merci de votre aide

Steph
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Utliser json dans un script python

Message par patrice »

Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Steph38
Messages : 44
Inscription : 12 août 2015, 18:13

Re: Utliser json dans un script python

Message par Steph38 »

Salut merci pour ta reponse mais j'ai exactement le meme message d'erreur avec ton script:

Traceback (most recent call last):
File "test2.py", line 71, in <module>
r=requests.get(requete).json()
TypeError: 'dict' object is not callable
Steph38
Messages : 44
Inscription : 12 août 2015, 18:13

Re: Utliser json dans un script python

Message par Steph38 »

j'ai trouvė, sur la derniere version de python il faut Ecrire r.json au lieu de r.json()
patrice
Messages : 1720
Inscription : 22 sept. 2014, 21:51

Re: Utliser json dans un script python

Message par patrice »

bonjour
pourrais tu me dire ta version de python STP
Raspberry pi 3, Dongle RfxCom et Zigate +, plugin de pipiche, Volets Roulants profalux, contrôle d'éclairage, détecteurs de présence, alarme incendie, pilotage livebox ...
Objectif : WAF > 1
Steph38
Messages : 44
Inscription : 12 août 2015, 18:13

Re: Utliser json dans un script python

Message par Steph38 »

J'ai python 3.2

Steph
Répondre