python - 从文本文件中逐行读取键/值对,并将值/字典传递给 urlopen http 函数

标签 python

我必须在网页上填写多个表单域
我完成了 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 对来更新字典。如果您在问题中发布文件中的示例行,我可以向您展示如何将其拆分为所需的 KEYVALUE

编辑:如何从文本文件中拆分行

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/

相关文章:

python - Pandas groupby 累积/滚动总和、平均值和标准差

python - 如何使用 2 个 pandas DataFrame 计算 IOU(重叠)

python - 在 Python 中使用环境变量

python - 结构重新启动我的 supervisord 服务终止服务

python - Django - 实现授权的最佳方式(基于每个角色以及每个用户)?

python - 函数不返回外部定义的变量

python - 在 python 中制作 keras 模型的深拷贝

python - 从 bash 脚本运行 "python manage.py runserver"

使用 dict 时的 python 语法

python - fatal error : Python. h:没有此类文件或目录错误:命令 'x86_64-linux-gnu-gcc' 失败,退出状态为 1