我试图在Kivy中构建一个应用程序。我有一个文件,其中有多个值存储在多个变量中(cod
,nome
,referencia
,quantidade
,preco
,fornecedor
),I想要搜索变量(类ScreenConsultarCompRef
)并打印相关的值。
示例:我有以下值:nome=abc
,referencia=123
,quantidade=52
,preco=25
,fornecedor=fgc
,我想要搜索变量referencia
(将123
放入TextInput中)并打印其他值(789
,abc
,52
,25
,fgc
)。
但代码返回错误:
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"]