我正在使用subprocess.Popen
和stdout
来编写来自Backendless(BaaS)的curl
的输出。
写入输出文件的是一长串单行数据,以逗号分隔。这是其中的一小部分。
{"APIEndpoint":"asdfaasdfa","created":1429550024000,"updated":null,"objectId":"EE51537D-A9AC-721C-FF33-F4B258931E00"...}
此输出文件所需的值是“objectID”后面的37个字符的字符串:“。我读过很多类似的问题,但是找不到这个特定问题的解决方案。我试过了类似的东西:
objectid = 37
searchfile open('backendless.txt', 'r')
for line in searchfile:
if "\"objectId\":\"" in line:
print(right[:objectidd])
什么都不返回。如果我错误地使用line
,请更正我。我对此很新。另外,有没有办法实现相同的结果而不先将其保存到文本文件中,而是使用curl
和PIPE
执行communicate
?
我正在使用Python 3.4。谢谢。
修改/溶液
from subprocess import *
baascurl = Popen(['curl', '-H', appid, '-H', secretkey, '-H', apptype, '-H', contenttype, '-X', 'GET', '-v', 'https://api.backendless.com/v1/data/Latency/last'], stdout=PIPE).communicate()[0]
objidbytes = baascurl.decode(encoding='utf-8')
objid = json.loads(objidbytes)["objectId"]