将变量插入到URL中

时间:2016-08-11 16:06:22

标签: python csv parsing urllib2

我有一个带有数字的CSV文件,我想将这些数字插入到网址中的特定位置:jus" "价值":" 这是我的代码:

with open('update_cases_id.csv') as p:
    for lines in p:
        uuid = lines.rstrip()

        url_POST = "www.example.com/"

        values = {}
        values['return_type'] = 'retrieval'
        values['format'] = 'TSV'
        values['size'] = '70'
        values['filters'] = '{"op":"and","content":[{"op":"in","content":{"field":"cases.case_id","value": .format(uuid)}}]}'

        data = urllib.urlencode(values)

        url_final = url_POST + '?' + data

        req2 = urllib2.Request(url_final)
        req2.add_header('cookie', cookie)
        handle = urllib2.urlopen(req2)

(编辑: 示例输入:123456-123456-987654 示例输出:它是数据文本)

2 个答案:

答案 0 :(得分:0)

您可以使用字符串格式执行此操作,这应该适合您:

# ...snip
values['filters'] = '{"op":"and","content":[{"op":"in","content":{"field":"cases.case_id","value":%s}]}' % uuid
# snip...

%{replace}运算符将替换为%s

>>> values = {}
>>> uuid = 1234
>>> values['filters'] = '{"op":"and","content":[{"op":"in","content":{"field":"cases.case_id","value":%s}]}' % uuid
>>> values
{'filters': '{"op":"and","content":[{"op":"in","content":{"field":"cases.case_id","value":1234}]}'}

答案 1 :(得分:0)

尝试使用Template

from string import Template
params = Template('{"op":"and","content":[{"op":"in","content":{"field":"cases.case_id","value": ${your_value}}}]}')
params = params.safe_substitute(your_value=123)
# params is '{"op":"and","content":[{"op":"in","content":{"field":"cases.case_id","value":123}]}'