我必须在网页上填写多个表单域
我完成了 http POST 部分,所以我可以将数据发布到网页。
我还完成了创建键/值对字典并在网页上填写表单字段的部分。
键/值对:
input1 = {'hostname' : 'host', 'port' : '22', 'basedn' : 'CN=Users', 'bindusername' : 'admin', 'bindpassword' : 'passwd', 'groupname' : 'CN=Group,CN=Users,DC=tech,DC=com', 'usernameattribute' : 'name'}
for line in open("/Users/rwettstein/Scripts/Files/ldap-settings.txt", "r"):
print line
input = line
time.sleep(10)
params = urllib.urlencode(dict(input))
try:
f_handler = urlopen('https://hostname/path/file.php', params)
except urllib2.HTTPError, error:
print "Error Code: %s" % error.code
但是,如果我把键/值对信息放到一个文本文件中,然后从文本文件中读取数据,逐行从文件中读取,编码成字典,然后交给Http请求,我收到以下错误:
ValueError: dictionary update sequence element #0 has length 1; 2 is required
发生此错误是因为从文件读取函数传递的值仅返回一个参数吗?
最佳答案
这是因为文件中的每一行都是一个字符串。您需要一个 KEY, VALUE
对来更新字典。如果您在问题中发布文件中的示例行,我可以向您展示如何将其拆分为所需的 KEY
和 VALUE
编辑:如何从文本文件中拆分行
line = "{'hostname' : 'host', 'port' : '22', 'basedn' : 'CN=Users', 'bindusername' : 'admin', 'bindpassword' : 'passwd', 'groupname' : 'CN=Group,CN=Users,DC=tech,DC=com', 'usernameattribute' : 'name'}"
pairs = line[1:-1].replace("'", '').split(', ')
pairs = [pair.split(":") for pair in pairs]
for pair in pairs:
pair = [i.strip() for i in pair]
pass_this_in = dict(对)
希望对你有帮助
关于python - 从文本文件中逐行读取键/值对,并将值/字典传递给 urlopen http 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5984253/