Python调用nsetools获取字段报错TypeError: unhashable type: 'list'求助
解决Python代码获取NSE字段时的TypeError问题
错误原因
你遇到的TypeError: unhashable type: 'list'是因为字典的键只能是可哈希类型(比如字符串、整数),而你尝试用列表["totalBuyQuantity","total SellQuantity"]作为键去访问字典q,这不符合字典的访问规则。另外,原代码中的字段名"total SellQuantity"存在拼写错误,正确的键名应为"totalSellQuantity"(无空格)。
修正后的代码
方法一:使用字典推导式提取多个字段
from pprint import pprint from nsetools import Nse nse = Nse() q = nse.get_quote('infy') # 定义需要获取的字段(修正拼写错误) desired_fields = ["totalBuyQuantity", "totalSellQuantity"] # 从原字典中提取指定字段的键值对 result = {field: q[field] for field in desired_fields} pprint(result)
方法二:逐个访问并打印字段
from pprint import pprint from nsetools import Nse nse = Nse() q = nse.get_quote('infy') # 直接访问每个字段并打印 print("totalBuyQuantity:", q["totalBuyQuantity"]) print("totalSellQuantity:", q["totalSellQuantity"])
说明
- 字典推导式可以快速从原字典中筛选出需要的键值对,生成一个新的字典,适合需要同时获取多个字段的场景。
- 逐个访问字段的方式更直观,适合字段数量较少的情况。
内容的提问来源于stack exchange,提问作者Brijesh Chaurasia
相关产品推荐
相关产品推荐

