python-3.x - 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 分钟运行一次(循环),但为了测试 i 'm 使用 30 秒循环。
为了比较新旧文件,我hashlib.sha1()
在比较它们之前使用了 2 个文件if hash_latest != hash_new:
但是,我可以看到多个哈希,而不是只有 2 个 SHA1 哈希,我认为这是在新文件完全写入之前生成哈希的结果。从视觉上看,文件内容完全匹配。
我使用timeit
并且文件生成总共需要 0.4 秒才能完成,所以我time.sleep(1)
在 SHA1 哈希开始之前插入了一个,但我再次接收了多个哈希。我什至尝试过filecmp.cmp(f1, f2, shallow=False):
我仍然有同样的结果。我在另一个交流中读到了一个叫做 p.wait() 的东西。有人可以建议吗?
解决方案
推荐阅读
- asp.net-core - 部分 Razor 页面中的链接触发错误的 OnGet
- javascript - 在 pickadate.js 中阻止单个日期
- linux - 如何使用 shell 脚本将日志文件转换为 JSON 格式?
- python - 广播的 numpy 数组的底层缓冲区使用了多少内存?
- plot - ILNumerics V5:旋转或平移时 3d 绘图会失真
- c++ - 使用 cin 时接受小数点后 2 位
- python - 用扩散张量实现边缘增强扩散(EED)
- c++ - 通过本地网络中的 OpenCV (C++) 实时流式传输图像
- plugins - 从页面生成可重用的 APEX 组件
- c# - 我在控制台应用程序“游戏”中遇到的问题