Python解析列表数据:如何提取AttributeDict中的_value字段?
正确提取
_value字段的方法 嘿,我来帮你搞定这个问题!你其实绕了个弯路——AttributeDict(通常来自web3.py)本身就支持像普通字典一样的访问方式,完全没必要先转成JSON再反序列化。下面分两种情况给你解决方案:
情况1:直接操作原始的x列表(最推荐)
因为x是一个包含单个AttributeDict元素的列表,你可以直接逐层访问:
# 先取出列表里的第一个元素 event_data = x[0] # 两种方式都能拿到_value: # 方式1:用点符号访问(AttributeDict的特性) value = event_data.args._value # 方式2:用字典键访问(和普通字典一样) value = event_data['args']['_value']
情况2:如果你已经执行了JSON序列化/反序列化
如果你已经把x转成了JSON再加载成z,那z本质是一个包含普通字典的列表,这时候要这么访问:
# 先取列表第一个元素,再逐层访问键 value = z[0]['args']['_value']
为什么你之前的z['AttributeDict']不行?
json.dumps()会把AttributeDict序列化成普通字典结构,所以z里根本不存在AttributeDict这个键——它就是一个列表,第一个元素是包含address、args等键的字典,自然用z['AttributeDict']会报错啦。
内容的提问来源于stack exchange,提问作者Hsn
相关产品推荐
相关产品推荐

