python - 使用 Python 说明读取 API 结果

标签 python input

我正在尝试通过 Python 读取 API 调用的结果,并且我使用基础应用程序/脚本作为起点。

我对脚本中发生读取的一点感到有点困惑:

result=urllib2.urlopen.read()[13:-1]
                    if result=="true":
                            logging.info('available')

我的问题专门针对 13:-1。根据 Python documentation , 它似乎是应用程序读取的偏移量或起点。这是一个例子:

>>> f.seek(-3, 2) # Go to the 3rd byte before the end

这看起来与我的脚本中的 .read() 略有不同,因为我的脚本中的分隔符是 : 而不是 ,

为了阐明它读取的内容,我以 Ello API 为例。因此它会读取一个链接,生成如下所示的结果:

{
available: true,
suggestions: [
"crunchyfeelsfists",
"crunchy_nicksshakes",
"supercrunchy"
]
}

所以我使用的示例脚本正在读取“available: true”行。

我的第一个问题是,使用:, 有什么区别。我的下一个问题是 13:-1 如何读取该 API 结果的第二行?

如有任何帮助,我们将不胜感激!

最佳答案

您不应该像那样通过 json 响应对象手动查找。你应该使用 json 内置库

就这样

data = json.loads(urllib2.urlopen.read())
print data["available"]
print data["suggestions"]
...

特别是因为可能几乎无法保证“可用”将始终是 json 响应中的第一个关键输出(因为字典本质上是无序的)

或者简单地使用请求库

data =requests.get(my_endpoint,data=my_data,headers=my_header).json()

我知道这并没有解决 OP 的原始切片问题(其他答案解决了这个问题)

关于python - 使用 Python 说明读取 API 结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30333663/

相关文章:

javascript - 如何实时显示DIV对象中输入的值

java - 如何从输入中获取默认值到 servlet 中?

python - lstm_9 层的输入 0 与发现 ndim=4 的 : expected ndim=3, 层不兼容。完整形状收到 : [None, 2, 4000, 256]

Python:使用协程进行异步 HTTP 请求-响应?

python - cx_Oracle 如何将复合/复杂数组传递给 PLSQL 过程?

javascript - 需要替换输入数字

python - cgi.FieldStorage 始终为空 - 从不返回 POSTed 表单数据

python - Plotly Python - 热图 - 更改 Hovertext (x,y,z)

c++ - 为什么我们会在读取输入后调用 cin.clear() 和 cin.ignore() ?

html - html中隐藏输入的长度是否有最大尺寸?