微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python - requests.get 后跟使用 HashLib 的文件比较

如何解决Python - requests.get 后跟使用 HashLib 的文件比较

美好的一天,
我遇到了一个非常令人困惑的情况。我正在使用 request.get 从 API 获取变量数据。

URL = "https://..../..../.....X={}&date={}".format(code,given_date)
header = {'User-Agent': xxx.xx.xx........}
response = requests.get(URL,headers=header)
json_data=json.loads(response.text)

接下来,我将上面的数据附加到文本文件中。 此代码的主要目的是检查来自 API 的数据更改并在检测到更改时发送警报(推送通知),因此代码设置为每 15 分钟运行一次(循环),但为了测试我正在使用 30 秒循环。

为了比较新旧文件,我在使用 hashlib.sha1() 比较它们之前对 2 个文件使用了 if hash_latest != hash_new:

但是,我可以看到多个哈希值,而不是 2 个 SHA1 哈希值,我认为这是在新文件完全写入之前生成哈希值的结果。从视觉上看,文件内容完全匹配。

我使用了 timeit 并且文件生成总共需要 0.4 秒才能完成, 所以我在 SHA1 哈希开始之前插入了一个 time.sleep(1),但我再次接收了多个哈希。 我什至尝试过 filecmp.cmp(f1,f2,shallow=False):

我仍然有相同的结果。我在另一个交流中读到了一个叫做 p.wait() 的东西。 有人可以建议吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。