我正在尝试通过 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/