我正在开发一个包。我想将一些数据存储在 json 文件中并在我的包中检索这些数据。
def get_contract_details(path: str) -> Tuple[str, list[str]]:
with open(path, 'r') as file:
content = json.load(file)
address = content['address']
abi = content['abi']
return address, abi
DETAILS = {
'uniswap': get_contract_details('_contracts/uniswap_v2_router.json')
}
class Uniswap(BaseRouter):
def __init__(self, provider: Web3, wallet: Wallet):
address, abi = DETAILS['uniswap']
super().__init__(provider, wallet, address, abi)
当我尝试导入类以检索包中的 json 数据时,出现以下错误:
FileNotFoundError: [Errno 2] No such file or directory: '_contracts/uniswap_v2_router.json'
我猜这个问题与相对路径有关。当我尝试导入该类时,它尝试从“CURRENT_PATH/_contracts/uniswap_v2_router.json”而不是“PACKAGE_PATH/_contracts/uniswap_v2_router.json”检索数据。我如何解决此问题并顺利存储和检索此数据?
您可以尝试获取特定文件的绝对路径。
import os
path = '_contracts/uniswap_v2_router.json'
abs_path = os.path.abspath(path)
print(abs_path)