来自文本文件的Urllib / JSON请求

时间:2014-05-29 19:51:31

标签: python json urllib2

我正在尝试将数据从文本文件发送到服务器,寻找与发送数据的匹配,以便将匹配的数据返回给我,并将其存储在现有的文本文件中。如果我在脚本中向服务器发送名称列表,我很好。但是我想重复请求并插入一个文本文件作为要匹配和返回的名称。这是我到目前为止的文字:

import json
import urllib2

values = 'E:\names.txt'
url = 'https://myurl.com/get?name=values&key=##########'


response = json.load(urllib2.urlopen(url))
with open('E:\data.txt', 'w') as outfile:
  json.dump(response, outfile, sort_keys = True, indent = 4,ensure_ascii=False);

此代码只返回一行文件,显示没有匹配的内容。我假设它只是将值视为名称而不是值文本文件中的数据。

更新试用版1:我根据下面的建议更新了我的代码,以包含urllib.urlencode建议。这是我更新的代码:

import json
import urllib
import urllib2

file = 'E:\names.txt'
url = 'https://myurl.com/get'
values = {'name' : file,
          'key' : '##########'}

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = json.load(urllib2.urlopen(req))
with open('E:\data.txt', 'w') as outfile:
  json.dump(response, outfile, sort_keys = True, indent = 4,ensure_ascii=False);

通过编辑网址修复了追溯错误。但是它只是在JSON请求中传递“e:\ names.txt”作为名称。因此,我现在的问题似乎只是尝试将names.txt文件中的数据正确发送到元组'名称'。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

确保在向服务器发送参数时,它们已经过重新编码 - 请参阅urllib.urlencode()