我正在尝试创建一个程序来分析终端中网站的速度。我使用curl模块来处理Linux中的命令。但我得到了以下错误。
ValueError: unsupported format character '{' (0x7b) at index 40
import subprocess
def webSpeed():
website = raw_input("Enter name of the website: ")
print(website)
cmd = "curl -s -w 'Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup}\nConnect Time:\t\t%{time_connect}\nAppCon Time:\t\t%{time_appconnect}\nRedirect Time:\t\t%{time_redirect}\nPre-transfer Time:\t%{time_pretransfer}\nStart-transfer Time:\t%{time_starttransfer}\n\nTotal Time:\t\t%{time_total}\n' -o /dev/null https://%s" %(webiste)
print(cmd)
temp = subprocess.call(cmd, shell="TRUE")
print(temp)如果使用花括号,我如何在python中添加curl命令?
发布于 2020-02-26 20:10:01
当你做的时候
string % format_values然后,字符串中的每个%都被视为格式化位置。Python找到了%{并感到困惑--它期望%d放置整数,或者%s放置字符串,或者其他一些已知的东西。但是格式化代码不对任何格式使用%{,因此出现错误。当您想要编写没有格式化意义的%时,您应该使用另一个%来转义它。
因此有两种解决方案
%% %s除外),要么不使用string % format_values,只需将网站添加到命令中,因为幸运的是,它位于的末尾。
正确和错误的代码示例:
website = "lukaszslusarczyk.pl"
cmd1 = "curl -s -w 'Response Time for %%{url_effective}\t%%{time_connect}\n' -o /dev/null https://%s" % website # OK
cmd2 = "curl -s -w 'Response Time for %{url_effective}\t%{time_connect}\n' -o /dev/null https://" + website # OK
cmd3 = "curl -s -w 'Response Time for %{url_effective}\t%{time_connect}\n' -o /dev/null https://%s" % website # wronghttps://stackoverflow.com/questions/60415533
复制相似问题