python中的typeerror提示nonetype_如何解决和解决python中的“TypeError:'NoneType”对象不可订阅...

我有一段代码,它使用我命名的get_event_info函数从ticketmasterapi获取数据。随后根据修改后的基于URL的原始身份验证函数代替了原来的修改后的代码。我还向函数添加了几行,用于验证响应状态代码。在进行这些更改之后,代码开始生成以下TypeError:Traceback (most recent call last):

File "ticketmaster_only_w_headers.py", line 146, in

for event in ticket_search["_embedded"]["events"].items():

TypeError: 'NoneType' object is not subscriptable

我已经读了很多关于这类错误的文章,但是我仍然不能确定为什么我的代码会在这个实例中产生它。如果能解释一下为什么我的代码会产生这个错误,以及我应该使用什么样的故障排除方法来发现源错误,我将非常感激。我对编程相当满意,但肯定不是专家,所以语言越简单越好。在

(功能定义)

^{pr2}$

(触发错误的代码段)ticket_search = get_event_info("")

for event in ticket_search["_embedded"]["events"]:

a = event["id"]

b = event["name"]

if "dateTime" in event["dates"]["start"]:

c = event["dates"]["start"]["dateTime"].replace(

"T", " ").replace("Z", "")

else:

c = "NONE"

if "end" in event["dates"] and "dateTime" in event["dates"]["end"]:

j = event["dates"]["end"]["dateTime"].replace(

"T", " ").replace("Z", "")

else:

j = "NONE"

(创建、打开并写入上述代码中使用的缓存的代码)CACHE_FNAME = "ticketmaster_cache.json"

try:

cache_file = open(CACHE_FNAME, "r")

cache_contents = cache_file.read()

CACHE_DICTION = json.loads(cache_contents)

cache_file.close()

except:

CACHE_DICTION = {}

下面显示的get_event_info函数的前一个版本,它不生成任何TypeError:def get_event_info(search, ticketmaster_key = ticketmaster_key):

if search in CACHE_DICTION:

d = CACHE_DICTION[search]

else:

data = requests.get("https://app.ticketmaster.com/discovery/v2/events",

params = {"keyword": search, "apikey": ticketmaster_key,

"format":"json", "dmaId": "366", "size": 200, "radius": "2"})

print(data.url)

d = json.loads(data.text)

CACHE_DICTION[search] = d

f = open(CACHE_FNAME, 'w')

f.write(json.dumps(CACHE_DICTION))

f.close()

return d

运行最新版本的代码时看到的回溯和错误消息:Traceback (most recent call last):

File "ticketmaster_only_w_headers.py", line 146, in

for event in ticket_search["_embedded"]["events"]:

TypeError: 'NoneType' object is not subscriptable

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值