2017-05-23 1 views
0

D'abord désolé pour mon mauvais anglais. Je m'informe sur les API et je décide d'implémenter une API météo sur une interface KIVY très basique. Cependant, je ne peux pas obtenir la valeur de sortie du Dict qui contient des informations sur la météo, comme un texte d'étiquette. Je pense que la valeur n'est pas une chaîne. Voudriez-vous m'aider?Sortie dict valeur sur Kivy label.text

class Tempo_Func(BoxLayout): 
    def tempo(self,cidade): 
     req=requests.get('http://api.openweathermap.org/data/2.5/weather?q=' 
     +cidade+ '&appid=mykey') 
     self.tempo = json.loads(req.text) 
     self.x =(self.tempo['weather'][0]['main']) 
class WeatherApp(App): 
    def build(self): 
     return Tempo_Func() 

if __name__=='__main__': 
    WeatherApp().run() 

kv

<Tempo_Func>: 
orientation:'vertical' 
padding:10 
spacing:10 

BoxLayout: 
    orientation:'vertical' 
    Label: 
     text:"Qual sua cidade?" 
     size_hint_y:None 
    TextInput: 
     id:entry 


    Button: 
     text:'Procurar' 
     on_press:root.tempo(entry.text) 
    Label: 
     text:root.x #I want to show the value of self.x here!! 
+0

Quel est le retraçage? – Kanak

Répondre

0

Modifier votre fichier .kv à ceci:

<Tempo_Func>: 
    orientation: 'vertical' 
    padding: 10 
    spacing: 10 
    Label: 
     text: "Qual sua cidade?" 
     size_hint_y: None 
    TextInput: 
     id: entry 
    Button: 
     text: 'Procurar' 
     on_press: root.tempo(entry.text) 
    Label: 
     text: str(root.x) 

Cela semble fonctionner. Je reçois une erreur parce que je n'ai pas la clé de l'API, donc vous devez vérifier vous-même.

+0

Merci beaucoup! cela a fonctionné –

+0

Pas de problème! Marquez ma réponse comme une réponse acceptée afin que les autres puissent la voir. –