Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在JsonStore kivy应用程序中循环获取值?_Python_Kivy_Jsonstore - Fatal编程技术网

Python 如何在JsonStore kivy应用程序中循环获取值?

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

我一直在努力寻找一种方法,使用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(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")