如何打印Azure Confidential Ledger查询结果而非方法绑定信息?
解决Azure Confidential Ledger查询结果打印问题
你遇到的问题是没有实际调用查询方法,只是把方法本身赋值给了变量,所以打印出来的是方法的绑定信息,而非查询结果。
错误原因
代码里的这行:
d = ledger_client.list_ledger_entries
只是将list_ledger_entries方法的引用赋值给了d,并没有执行这个方法去获取账本条目。要执行方法,必须加上括号()。
正确代码示例
另外,list_ledger_entries返回的是分页结果,需要遍历或获取所有条目才能打印具体内容:
from azure.confidentialledger import ConfidentialLedgerClient from azure.confidentialledger.certificate import ConfidentialLedgerCertificateClient from azure.identity import DefaultAzureCredential identity_client = ConfidentialLedgerCertificateClient() network_identity = identity_client.get_ledger_identity( ledger_id="MyLedger" ) ledger_tls_cert_file_name = "ledger_certificate.pem" with open(ledger_tls_cert_file_name, "w") as cert_file: cert_file.write(network_identity["ledgerTlsCertificate"]) credential = DefaultAzureCredential() ledger_client = ConfidentialLedgerClient( endpoint="https://MyLedger.confidential-ledger.azure.com", credential=credential, ledger_certificate_path=ledger_tls_cert_file_name ) # 调用方法获取分页结果 ledger_entries_page = ledger_client.list_ledger_entries() # 遍历当前页的条目并打印详情 for entry in ledger_entries_page: print(f"条目ID: {entry.entry_id}") print(f"条目内容: {entry.contents}") print(f"提交时间: {entry.submitted_at}") print("---") # 如果需要获取所有分页的条目,可使用以下方式 all_entries = [] for page in ledger_client.list_ledger_entries().by_page(): all_entries.extend(page) print("所有账本条目内容:") for entry in all_entries: print(entry.contents)
关键说明
- 必须通过
list_ledger_entries()(带括号)调用方法,才能获取实际的查询结果 - Azure SDK的分页结果需要遍历处理,直接打印分页对象只会显示对象信息,无法展示具体条目
- 每个账本条目包含
entry_id、contents、submitted_at等属性,可按需打印对应内容
内容的提问来源于stack exchange,提问作者OmT
相关产品推荐
相关产品推荐

