检查JSON请求是否与python中以前的请求(数据已更新)不同

检查JSON请求是否与python中以前的请求(数据已更新)不同,python,json,request,Python,Json,Request,我正在使用请求从json文件读取数据。。并希望将这些值存储在excel文件中。我遇到的问题是我不知道更新这个json文件的时间间隔,所以很难使我的调度程序完美。。我最终得到了重复的值。我似乎找不到任何能帮我查的图书馆 在这个场景中,我在1:10得到了一个副本,我不想添加它,因为它与1:05的相同。在某些情况下,一次可能有多个副本,我希望在添加而不是添加然后删除之前对此进行检查 有没有更简单的方法来解决这个问题 例如: timestamp stock buy sell 1:05

我正在使用请求从json文件读取数据。。并希望将这些值存储在excel文件中。我遇到的问题是我不知道更新这个json文件的时间间隔,所以很难使我的调度程序完美。。我最终得到了重复的值。我似乎找不到任何能帮我查的图书馆

在这个场景中,我在1:10得到了一个副本,我不想添加它,因为它与1:05的相同。在某些情况下,一次可能有多个副本,我希望在添加而不是添加然后删除之前对此进行检查

有没有更简单的方法来解决这个问题

例如:

timestamp   stock  buy  sell 
   1:05       1     10    10
   1:10       1     10    10
   1:15       1     20    16

def do_this():
    previous_data = []
    try:
        response = requests.get(JSON_LINK)
        previous_data = response.content
    except Exception:
        print('Failed in main')


    if(previous_data == response.content):
        print('same data')
    else:
        print('new data')

我意识到这在以前的情况下是行不通的。data=[]将始终接收当前响应的内容,而不是以前的响应数据。

您可以尝试在现有数据中搜索您拥有的相同记录。如果记录存在,则它是更新,如果不是删除

您还可以缓存以前的请求。当新请求传入时,将其与缓存进行比较并删除重复的请求。这种方法只有在您关心以前和以后的请求时才有效


“我不知道更新此json文件的时间间隔”-您可以在请求存储为“最新”时向请求添加自定义头。当另一个请求传入时,检查报头时间值,如果它早于最新的,则将其丢弃。

您可以尝试在现有数据中搜索您拥有的相同记录。如果记录存在,则它是更新,如果不是删除

您还可以缓存以前的请求。当新请求传入时,将其与缓存进行比较并删除重复的请求。这种方法只有在您关心以前和以后的请求时才有效


“我不知道更新此json文件的时间间隔”-您可以在请求存储为“最新”时向请求添加自定义头。当另一个请求传入时,检查报头时间值,如果它早于最新的,则将其丢弃。

考虑到JSON可以在不同的时间具有相同的值。
检查对象是否相等主要有两种方法——一种是逐字符检查,另一种是匹配哈希值。

因此,一种方法是创建一个HashSet。每当有新的响应出现时,您都要计算散列并检查该散列是否存在。如果存在,则只需丢弃响应;如果不存在,则将哈希值存储在哈希集中,并将响应值存储在excel中。

注意:哈希匹配比字符串匹配花费的时间更少。

考虑到JSON可以在不同时间具有相同的值。
检查对象是否相等主要有两种方法——一种是逐字符检查,另一种是匹配哈希值。

因此,一种方法是创建一个HashSet。每当有新的响应出现时,您都要计算散列并检查该散列是否存在。如果存在,则只需丢弃响应;如果不存在,则将哈希值存储在哈希集中,并将响应值存储在excel中。

注意:哈希匹配比字符串匹配花费的时间更少。

我将尝试这种方法!谢谢。我试试这个方法!谢谢。我还没有查过缓存,但我现在会查的!如果我能弄明白的话,这看起来是个可靠的方法。但是是的,我只是在寻找以前和以后的请求。。不一定要查看整个excel工作表。还没有查看缓存,但我现在会!如果我能弄明白的话,这看起来是个可靠的方法。但是是的,我只是在寻找以前和以后的请求。。不一定要查看整个excel表。