在request.get中使用str(sys.argv [1])(url,params = data)

时间:2015-11-05 17:34:24

标签: python python-requests

您好我正在尝试在request.get(url,params = data)数据列表中使用sys.argv。

我失败了 这是我写的代码

#!/usr/bin/env python
import sys
import requests
from xml.etree import ElementTree

vlan = str(sys.argv[1])

url = "https://xxxx.xxx.com/api/"

data = {
    'key':'LUFRPT1VN2RyMmsxN0ljYWs1cdsaf3251VBkZHFLdHM9MEdHY3ZqWlpFQkI0UU1KeWpyZkV2OW9nM2pkSUE3NEdlRVVGSklWVTgvcz0=',
    'type':'op',
    'cmd':'<show><arp><entry name="ethernet1/5.608"/></arp></show>'
   }

output = requests.get(url,params=data)

我想要使用的是

'cmd':'<show><arp><entry name="ethernet1/5.608"/></arp></show>'

我想从命令行中获取usr参数,而不是使用608

所以当我调用脚本时./script 123

我想用123作为这个

'cmd':'<show><arp><entry name="ethernet1/5.123"/></arp></show>'

我尝试使用

cmd':'<show><arp><entry name="ethernet1/5.$vlan"/></arp></show>'

它不起作用

谢谢

1 个答案:

答案 0 :(得分:1)

您正在寻找的功能称为&#34;字符串格式化&#34;。有两种变体,一种使用% operator,另一种使用str.format method

%运营商:

'cmd':'<show><arp><entry name="ethernet1/5.%s"/></arp></show>'%(vlan)

str.format()

'cmd':'<show><arp><entry name="ethernet1/5.{}"/></arp></show>'.format(vlan)