- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我目前有一个脚本应该获取并返回 Bit.ly 链接的点击次数。我首先从 Bitly url 收集和读取数据,我似乎在做正确的事情。
bitly_data = "https://api-ssl.bitly.com/v3/link/clicks?access_token=ACCESS_TOKEN&link=http://bit.ly/"+link
src = urllib2.urlopen(bitly_data)
src = src.read()
当 link
是诸如 TY8lnd
之类的东西时,src
是一个看起来像这样的字符串
{"status_code": 200, "data": {"units": -1, "tz_offset": -4, "unit": "day", "link_clicks": 535}, "status_txt": "OK"}
我现在想解析这个字符串以获取 link_clicks
之后的数值。我认为最好的方法是进行两次拆分。
src=src.split('clicks": ')
src = str(src[1])
clicks = src.split('}, "status')
clicks = clicks[0]
当我运行它时,点击次数最终确实等于正确的数字,而且仅此而已。但是,终端为 src = str(src[1])
行返回 IndexError。我尝试摆脱 str()
但这没有效果。非常感谢尽管最终值已得到纠正,但我仍会收到此错误的理解。
这是完整的回溯:
Traceback (most recent call last):
File "/Library/Python/2.7/site-packages/Flask-0.9-py2.7.egg/flask/app.py", line 1701, in __call__
return self.wsgi_app(environ, start_response)
File "/Library/Python/2.7/site-packages/Flask-0.9-py2.7.egg/flask/app.py", line 1689, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Library/Python/2.7/site-packages/Flask-0.9-py2.7.egg/flask/app.py", line 1687, in wsgi_app
response = self.full_dispatch_request()
File "/Library/Python/2.7/site-packages/Flask-0.9-py2.7.egg/flask/app.py", line 1360, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Library/Python/2.7/site-packages/Flask-0.9-py2.7.egg/flask/app.py", line 1358, in full_dispatch_request
rv = self.dispatch_request()
File "/Library/Python/2.7/site-packages/Flask-0.9-py2.7.egg/flask/app.py", line 1344, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/Zach/Dropbox/bitly/bit.py", line 35, in settings
src = str(src[1])
IndexError: list index out of range
提前致谢。
最佳答案
此响应是 json,因此解码 json 而不是尝试解析字符串。
>>> import json
>>> resp = '{"status_code": 200, "data": {"units": -1, "tz_offset": -4, "unit": "day", "link_clicks": 535}, "status_txt": "OK"}'
>>> resp_object = json.loads(resp)
>>> resp_object and resp_object.get('data', {}).get('link_clicks', 0) or 0
535
关于python - 为什么我会得到一个(看似)正确拆分的字符串的 IndexError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13166940/
我在cmd中发起了焰火,并在下面进行了表演,以提高我的技能。。当我执行a.take(1)时,我得到“_ickle.PicklingError:无法序列化对象:IndexError:tuple inde
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题?通过 editing this post 添加详细信息并澄清问题. 1年前关闭。 Improve this
如果我测试以下“空”条件,则会得到一个IndexError,指出字符串索引超出范围。这是为什么?如果用户输入为空,我希望脚本打印“空”。 pyg = 'ay' original = raw_input
我在 occurence[j] = 0 上收到错误消息.我真的不明白我的代码中这个错误的起源,因为它的长度是 dna,因为我在代码的顶部附加了 len(dna)零,然后我将一些值分配给同一个列表 oc
我正在阅读python上的视频帧,并且试图找到每个帧索引的RGB。我需要检测LED(将阈值设置为开/关-红色/黑色),但是我遇到了索引编制问题。 我需要访问图像左下角的RGB值。 # Check if
你能告诉我为什么我必须在 try/except 语句中包含这个 if 吗?当我使用列表调用函数时,此方法会引发 IndexError ,其中最后一个元素与列表中的其他元素相同。当最后一个元素在列表中仅
我需要帮助对我的键值对进行排序。我的输出位于此网址 http://pastebin.com/ckKAtP5y 中。然而,我一直在努力做的是。 { "courses": [ {
我知道索引会超过该组最后一个成员的索引,但如何使该功能正常工作? 无论如何,该函数的目的是检查列表中的所有成员是否相同。我对另一个函数有同样的问题,该函数旨在检查列表是否按顺序排列。它适用于其他所有内
请考虑以下代码吗? start_list = [5, 3, 1, 2, 4] square_list = [] for i in start_list: square_list.append(
我正在尝试找出它抛出该错误的原因。元组的长度应该是 4,确实是。有什么提示、想法吗? 此代码适用于我正在为 Udacity 编程入门 nano 学位开展的瑞士风格项目。 相关代码Python代码来自t
已更新,看底! 我卡住了!我收到一个 IndexError: list index out of range 错误。 def makeInverseIndex(strlist): numStr
我想我是在问一个新手问题,但今天花了太多时间寻找答案。在使用 np.genfromtxt 保存和重新加载后天真地尝试对 numpy 数组执行相同的切片操作时,我收到了 IndexError: too
我一直在做一个井字游戏的程序,需要两个玩家轮流输入棋盘坐标,比如 (r1,c1)->(r2,c2)-> (r3,c3)-> …,其中 r 是行,c 是列,棋盘看起来像 0 1 2 3 4 5 6 7
一些背景知识: 我正在编写一个基于单词的小型迷宫游戏,从一个由 X、O 和 F 组成的简单迷宫开始。 我的迷宫是代表迷宫本身的列表列表,其中 X 是一堵墙,O 是一个开放点,F 是终点线。 我正在尝试
s="(8+(2+4))" def checker(n): if len(n) == 0: return True if n[0].isdigit==True: if n[1].isd
我在图表上搜索单词的代码如下: size = len(word) height = len(diagram) width = len(diagram[0]) for i in range(0, hei
我有 Python 代码在列表中搜索字符串并将相应的参数存储到变量。 “X”下方的列表由单引号中的逗号分隔,这是我的实际逻辑 map1 = str(val).split('MAP:')[1].spli
这个问题在这里已经有了答案: How to remove items from a list while iterating? (25 个答案) 关闭 6 年前。 我是 Python 初学者。之前学
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] for i in a: print(a[i]) IndexError: list index out of
在我使用 python 实现的合并排序中,运行时发生错误 IndexError: list assignment index out of range 这是代码: #merge def merge(a
我是一名优秀的程序员,十分优秀!