我有以下谷歌colab代码:
code :
!wget https://bin.equinox.io/c/4VmDzA7iaHb/ngrok-stable-linux-amd64.zip
!unzip ngrok-stable-linux-amd64.zip
LOG_DIR = './log'
get_ipython().system_raw(
'tensorboard --logdir {} --host 0.0.0.0 --port 6006 &'
.format(LOG_DIR)
)
get_ipython().system_raw('./ngrok http 6006 &')
! curl -s http://localhost:4040/api/tunnels | python3 -c \
"import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"
输出:https://6a112ff8.ngrok.io https://6a112ff8.ngrok.io
我的问题是如何将curl管道python命令(最后3行)转换为python脚本?目前它正在 google colab 中执行。
我尝试使用以下代码接近解决方案:
import sys, json
import requests
from IPython import get_ipython
LOG_DIR = './log'
get_ipython().system_raw(
'tensorboard --logdir {} --host 0.0.0.0 --port 6006 &'
.format(LOG_DIR)
)
response = requests.get('http://localhost:4040/api/tunnels')
# result=json.load(response)
print(json.load(response)['tunnels'][0]['public_url'])
但是我收到错误:
AttributeError: 'NoneType' object has no attribute 'system_raw'
! curl -s http://localhost:4040/api/tunnels | python3 -c \
"import sys, json; print(json.load(sys.stdin)['tunnels'][0]['public_url'])"
要在纯Python中不使用curl来完成此操作,您可以使用requests库,并且json
响应对象的方法(r
在此示例中)它返回一个字典:
import requests
try:
r = requests.get('http://localhost:4040/api/tunnels')
d = r.json()
public_url = d['tunnels'][0]['public_url']
except Exception as e:
print ('Failed: ', e)
# Do something with `public_url`
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)