Skip to main content
 首页 » 编程设计

python之为什么 web3.eth.getBlock 给出空答案而 getTransactionReceipt 给出错误

2024年12月31日35lyhabc

我在我的 python 代码中使用 Web3.py。代码是这样的

from web3 import Web3    
w3 = Web3(Web3.HTTPProvider("https://ropsten.infura.io/"))*   
for i in range(5000000,5100000):   
    print(i)   
    transactionArray = []   
    blockResult = w3.eth.getBlock(i)   
    for tx in blockResult["transactions"]:   
        txResult = binascii.hexlify(tx).decode()   
        print(txResult) 
        transactionResult = w3.getTransactionReceipt(txResult) 
        print(transactionResult) 

当我执行这段代码时,出现错误

5000000   
Traceback (most recent call last): 
  File "Test06.py", line 27, in <module> 
    for tx in blockResult["transactions"]: 
TypeError: 'NoneType' object is not subscriptable 

但是如果我从 4571699 开始,它会给出结果。有人能告诉我为什么我收到范围从 5000000 开始的错误

我用的是MAIN NET,所以解决了这个问题。但是现在我收到一个错误

Traceback (most recent call last):    
  File "Test06.py", line 35, in <module> 
     transactionResult = w3.getTransactionReceipt(txResult) 
AttributeError: 'Web3' object has no attribute 'getTransactionReceipt'. 

请您参考如下方法:

您使用的是 ropsten 测试链,截至此答案只有 4572019 个 block 。