【发布时间】:2016-02-01 17:28:52
【问题描述】:
curl -v -d "api_key=kkkk&api_secret=ssss&endpoint=eeee&app=aaaa¶ms=[{"money":"1111", "last":"0.045"}, {"money": "1111", "last":"0.05"}]... > 500 records" http://my_server:port/api/process/json
这个应该转换成 python 脚本,因为我的目标是这些 json 部分 {"money":"...", "last":"...."} 拥有超过 500 个不同的货币值.并在最后传递给服务器。
我尝试了几种不同的方法,甚至在此处寻求帮助以执行某些步骤,但始终未能达到最终的预期结果。 所以我尝试过:
cog = []
for i in range(20201, 20705):
cog.append('{"money": str(i), "last": "0.001"}')
params = tuple(cog)
p_c = {}
p_c['api_key'] = 'kkkk'
p_c['api_secret'] = 'ssss'
p_c['app'] = 'aaaa'
p_c['endpoint'] = 'eeee'
p_c['params'] = json.dumps(params)
req1 = requests.post_simple(url=Server.My_server, params=p_c)
这个将参数作为“钱”传递:str(i) http://my_server:port/api/process/json?api_key=kkkk&api_secret=ssss&endpoint=eeee&app=aaa¶ms=[{"money": str(i)........
我尝试了另一个选项(现在试图找到它),它弄乱了参数的顺序,使一些键值成为其他键的值
也试过了:
p_c = {}
p_c['api_key'] = 'kkkk'
p_c['api_secret'] = 'ssss'
p_c['app'] = 'aaaa'
p_c['endpoint'] = 'eeee'
params = '{"money":"11111","last":"0.0001"},'
for i in range(20201, 20705):
params = params + '{"money":"%d","last":"0.0001"},' % i
dat = ("params="+params)
req1 = requests.post_simple(url=Server.my_server,params=p_c, data=dat, headers=headers)
对服务器的预期传递调用应如下所示:
http://my_server:port/api/process/json?api_key=kkkk&api_secret=ssss&endpoint=eeee&app=aaa¶ms=[{"money": "1111", "last": "0.0001"}, {"money":"22222", "last":"0.00001"},.... ,{more than 500},........]
【问题讨论】:
-
“这个是搞乱了 cogs 的顺序,使一些键值成为其他键”。你能解释一下吗?似乎第一个 sn-p 应该做你正在寻找的东西(一旦你修复了
for循环的缩进)。 -
"这个搞乱了参数的顺序" 应该是参数。我的意思是,当所有内容都传递给调用链接时,看起来像 .....params=[{"money":"last", "money":"last},{"1111":"0.001"," 2222":"0.001"}......] 我完全不确定如何修复循环以便以正确的顺序传递 Key:value
-
嗯,除了缩进
cog.append(...)这一行外,还需要去掉单引号。但这不会导致您描述的问题,我不确定会发生什么。我无法重现它。 -
如果我不删除刚刚检查的'',它会将参数传递为:“money”:str(i),甚至不会弄乱key:value
-
正确,这就是您需要删除它们的原因。并且,再次缩进该行。