You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Python代码,仅在API返回结果与上一次不同时打印内容

实现方案

你可以通过本地缓存上一次请求的结果,每次运行时做对比判断是否需要打印,修改后的代码如下:

import requests
import json
from decimal import Decimal

# 原有配置参数保持不变即可
tx_sell = "你的卖出地址1"
tx_sell2 = "你的卖出地址2"
person1 = {"address": "你的查询地址"}
APIKEY = "你的bscscan接口密钥"

# 新增:上一次结果的缓存文件路径
CACHE_FILE = "last_bsc_result.json"

api_url= "https://api.bscscan.com/api?module=account&action=tokentx&contractaddress=smartcontract&address=" + person1["address"] + \
    "&startblock=10290674&endblock=999999999&page=1&offset=1&sort=desc&apikey=" + APIKEY

response = requests.get(api_url)
address_content = response.json()
result = address_content.get("result")  

# 新增:结果对比逻辑
current_result_str = json.dumps(result, sort_keys=True)
has_change = True

# 读取上次缓存的结果
try:
    with open(CACHE_FILE, "r", encoding="utf-8") as f:
        last_result_str = f.read()
    if current_result_str == last_result_str:
        has_change = False
except FileNotFoundError:
    # 首次运行无缓存,默认有更新
    pass

# 仅当结果有变化时执行打印逻辑
if has_change:
    # 更新缓存
    with open(CACHE_FILE, "w", encoding="utf-8") as f:
        f.write(current_result_str)
    
    # 原有打印逻辑保持不变
    for n, transaction in enumerate(result):
        block = transaction.get("blockNumber")
        hash = transaction.get("hash")
        tx_from = transaction.get("from")
        tx_to = transaction.get("to")
        value = transaction.get("value")
        confirmations = transaction.get("confirmations")

        # 注:原有代码两次给coin_value赋值,后面的赋值会覆盖前面的,按需保留需要的计算逻辑即可
        # coin_value = Decimal(value)/1000000000000000000
        coin_value = int(value)/1000000000
        print("COIN", coin_value)
        print("\n")
        
        if tx_to in (tx_sell, tx_sell2):
            print("sell")
        elif tx_from in (tx_sell, tx_sell2):
            print("buy")

核心逻辑说明

  • 用json.dumps把接口返回的result序列化为字符串,加sort_keys=True避免因为键的排序不同导致的误判
  • 每次运行先读取本地缓存的上次结果字符串,和本次的做对比,完全一致就跳过所有打印逻辑
  • 结果有变化时先更新缓存,再执行打印操作
  • 第一次运行没有缓存文件时默认会正常打印,后续重复运行如果结果不变就不会输出内容

内容的提问来源于stack exchange,提问作者hammad99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:36:03