Python 如何在JsonStore kivy应用程序中循环获取值?
我一直在努力寻找一种方法,使用JsonStore模块在多个对象中迭代一组特定的值。我的代码:Python 如何在JsonStore kivy应用程序中循环获取值?,python,kivy,jsonstore,Python,Kivy,Jsonstore,我一直在努力寻找一种方法,使用JsonStore模块在多个对象中迭代一组特定的值。我的代码: class MainApp(App): def build(self): # build() returns an instance self.store = JsonStore("streak.json") # file that stores the streaks: return presentation def check_streak(s
class MainApp(App):
def build(self): # build() returns an instance
self.store = JsonStore("streak.json") # file that stores the streaks:
return presentation
def check_streak(self, instance):
for value in self.store.find('delta'):
if value > time.time():
print("early")
if value == time.time():
print("on time")
if value < time.time():
print("late")
当我使用check_streak时,我得到TypeError:find()接受1个位置参数,但给出了2个
json文件中包含的内容:
{"first": {"action": "first", "action_num": "1", "seconds": 60, "score": 0, "delta": 1555714261.0438898}, "second": {"action": "second", "action_num": "2", "seconds": 120, "score": 0, "delta": 1555879741.894656}}
请注意,每个对象都以其名称开头,在本例中为“first”和“second”。我希望能够遍历每个对象的“delta”键并获得其值。一旦我得到对象“delta”的值,我就会将其与当前时间进行比较
我被提到了一个涉及生成ID的问题,但我不知道这与我的问题有什么关系。虽然我认为生成器适合创建随机数,但我使用的数据不是随机的。如果使用生成器是我要做的事情的唯一方法,有人能告诉我如何在代码中使用它吗
我以前收到的答案并不能说明我希望“增量”值仍然附加到对象上,而不仅仅是列出它们。如何使用
以下示例不使用JsonStore
。它使用json.load
加载json对象
片段
导入json
...
def检查条纹(自,*参数):
打开(“streak.json”、“r”)作为读取文件:
data=json.load(读取文件)
对于项目_生成器中的蜂蜜(数据“delta”):
打印(f“蜂蜜={蜂蜜}”)
打印(f“类型(蜂蜜)={type(蜂蜜)}”)
如果蜂蜜>时间。时间()
打印(“早期”)测试
如果honey==time.time():
打印(“准时”)
如果蜂蜜
注
无法使用
store.find(key='value')
函数,因为delta
不是固定的或常量。它不像文档中的name='kivy'
,它看起来像self.store.find
需要一个或多个关键字参数,可能类似于self.store.find(delta='somevalue')中的值的
。这也是错误的意思:函数根本不需要位置参数。创建新问题不取决于您收到的答案,如果是相同的问题,则该问题是重复的,并且使用相同问题创建新出版物在此处被视为噪音。谢谢!这与已经回答的问题一起起到了帮助作用。很抱歉创建了一个重复的问题,我只是有一段时间不理解生成器代码。
{"first": {"action": "first", "action_num": "1", "seconds": 60, "score": 0, "delta": 1555714261.0438898}, "second": {"action": "second", "action_num": "2", "seconds": 120, "score": 0, "delta": 1555879741.894656}}
import json
...
def check_streak(self, *args):
with open("streak.json", "r") as read_file:
data = json.load(read_file)
for honey in item_generator(data, 'delta'):
print(f"honey={honey}")
print(f"type(honey)={type(honey)}")
if honey > time.time():
print("early") # test
if honey == time.time():
print("on time")
if honey < time.time():
print("late")