我正在尝试使用URLLIB2打开URL并将内容读回到数组中.问题似乎是您不能在具有格式字符的URL中使用字符串插值,例如%20表示空格,%3C表示"<".有问题的URL中有空格和一些xml.
我的代码很简单,看起来像这样:
#Python script to fetch NS Client Policies using GUID
import sys
import urllib2
def GetPolicies(ns, guid):
ns = sys.argv[1]
guid = sys.argv[2]
fetch = urllib2.urlopen('http://%s/Altiris/NS/Agent/GetClientPolicies.aspx?xml=%3Crequest%20configVersion=%222%22%20guid=%22{%s}%22') % (ns, guid)
Run Code Online (Sandbox Code Playgroud)
为简洁起见,我缩短了URL,但是你得到了一般的想法,你得到一个'格式字符串的参数不够'错误,因为它假设你想要使用%3,%20和其他东西作为字符串插值.你怎么解决这个问题?
你可以加倍%标志
url = 'http://%s/Altiris/NS/Agent/GetClientPolicies.aspx?xml=%%3Crequest%%20configVersion=%%222%%22%%20guid=%%22{%s}%%22' % (ns, guid)
Run Code Online (Sandbox Code Playgroud)
或者你可以使用.format()方法
url = 'http://{hostname}/Altiris/NS/Agent/GetClientPolicies.aspx?xml=%3Crequest%20configVersion=%222%22%20guid=%22{id}%%2''.format(hostname=ns, id=guid)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
987 次 |
| 最近记录: |