1

我正在尝试在 python 中使用 web3。

我正在尝试按照http://web3py.readthedocs.io/en/stable/web3.eth.html#web3.eth.Eth中的步骤进行操作

import web3
web3.eth.getBlock("1028201")

但是得到了AttributeError: module 'web3.eth' has no attribute 'getBlock'

我在 python 3 和 python 2.7 中都试过,得到了相同的结果。

有什么建议吗?

谢谢

4

5 回答 5

1

我正在为以太坊网络工作。给定的代码对我有用。

from web3 import Web3                               
w3 = Web3(Web3.HTTPProvider("https://ropsten.infura.io/"))

然后写代码web3.eth.getBlock("1028201")

于 2018-12-06T12:27:30.907 回答
1

在调用设置模块功能之前,请确保您正在实例化快速入门文档Web3中提到的对象。web3.eth.getBlocketh

from web3 import Web3, TestRPCProvider
w3 = Web3(TestRPCProvider())

查看web3.eth的代码,我们可以看到class Eth(Module):其中包含def getBlock. 如果您还查看 的定义 Module,您会看到该attach函数用于实际重新定义web3.eth您想要的行为。该attach函数通常在以下位置调用web3/main.py

for module_name, module_class in modules.items():
        module_class.attach(self, module_name)

module_class请注意isEthmodule_nameis上方的循环之一"eth"

您可能缺少此逻辑,因此请确保Web3在调用web3.eth.getBlock.

于 2018-01-10T22:49:39.653 回答
0

web3.eth.get_block可以使用API通过它们的编号或哈希来查找块。块哈希应该是十六进制表示。块号

按编号获取块

web3.eth.get_block(12345)

见文档。 https://web3py.readthedocs.io/en/stable/examples.html#looking-up-blocks

于 2021-06-24T16:19:15.137 回答
0

您使用的语法是错误的,属性 eth 属于 WEB3 对象,而不是类本身试试这个它应该工作


from web3 import Web3
# Create an object from the WEB3 lib
w3 = Web3(Web3.IPCProvider())

#then use the eth attribute on it
w3.eth.getBlock("1028201")
于 2022-02-20T18:58:46.263 回答
0

如果有人像我一样来到这里寻找以下错误的解决方案

ImportError: cannot import name 'web3' from 'web3'

错误:from web3 import web3 正确:from web3 import Web3 请注意第二个“Web3”中的大写“W”

于 2022-01-27T11:02:16.973 回答