Python:return self._data [key] KeyError:' 123'

时间:2018-01-23 12:13:40

标签: python kivy

我试图在Kivy中构建一个应用程序。我有一个文件,其中有多个值存储在多个变量中(codnomereferenciaquantidadeprecofornecedor),I想要搜索变量(类ScreenConsultarCompRef)并打印相关的值。

示例:我有以下值:nome=abcreferencia=123quantidade=52preco=25fornecedor=fgc,我想要搜索变量referencia (将123放入TextInput中)并打印其他值(789abc5225fgc)。

但代码返回错误:

    return self._data[key]
KeyError: '123' 

我想我知道错误在哪里,但我不知道如何解决它,因为我是python的新手。

在文件中我有这个:

"789": {"preco": "25", "codigo": "123", "quantidade": "52", "fornecedor": "fgc", "nome": "abc"}

所有变量都定义为变量cod的函数,似乎我无法在{ }内访问。

我不想更改变量的位置,因为我想搜索cod(类ScreenConsultarComponente)并且运行良好。

dados.py

from kivy.storage.jsonstore import JsonStore
componentes = JsonStore('componentes.json')

   def criarComponente(cod, nm, ref, quant, preco, forn):
           componentes.put(cod,nome=nm,referencia=ref,quantidade=quant,preco=preco,fornecedor=forn)


   def consultarComponente(cod):
    componente = componentes.get(cod)
    return componente


   def consultarCompRef(ref):
    componente = componentes.get(ref)
    return componente

main.py

class ScreenConsultarComponente(Screen):
    codigo  = ObjectProperty()
    nome  = ObjectProperty()
    referencia  = ObjectProperty()
    quantidade  = ObjectProperty()
    preco = ObjectProperty()
    fornecedor = ObjectProperty()

    def consultarComponente(self):
        js = consultarComponente(str(self.codigo.text))
        compconsulta=js
        self.nome.text = compconsulta["nome"]
        self.referencia.text = compconsulta["referencia"]
        self.quantidade.text = compconsulta["quantidade"]
        self.preco.text = compconsulta["preco"]
        self.fornecedor.text = compconsulta["fornecedor"]




class ScreenConsultarCompRef(Screen):
    codigo  = ObjectProperty()
    nome  = ObjectProperty()
    referencia  = ObjectProperty()
    quantidade  = ObjectProperty()
    preco = ObjectProperty()
    fornecedor = ObjectProperty()


    def consultarCompRef(self):
        js = consultarCompRef(str(self.referencia.text))
        compconsulta=js
        self.codigo.text = compconsulta["codigo"]
        self.nome.text = compconsulta["nome"]
        self.quantidade.text = compconsulta["quantidade"]
        self.preco.text = compconsulta["preco"]
        self.fornecedor.text = compconsulta["fornecedor"]

0 个答案:

没有答案