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)
这个人正在把这些游行作为" money":str(i) http://my_server:port/api/process/json?api_key=kkkk&api_secret=ssss&endpoint=eeee&app=aaa¶ms=[ {"钱":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},........]
答案 0 :(得分:4)
您正在对params
参数进行双重编码:
cog = []
for i in range(20201, 20705):
cog.append('{"money": str(i), "last": "0.001"}')
params = tuple(cog)
...
p_c['params'] = json.dumps(params)
您编码了一系列字符串,而您的原始curl
命令包含一个带有JSON对象的JSON列表(Python中的字典)。 tuple()
调用完全是冗余的,元组和列表都转换为相同的JSON结构。
构建词典:
cog = []
for i in range(20201, 20705):
cog.append({"money": i, "last": "0.001"})
...
p_c['params'] = json.dumps(cog)
您可以使用列表解析在一行中执行此操作:
cog = [{"money": i, "last": "0.001"} for i in range(20201, 20705)]
...
p_c['params'] = json.dumps(params)
请注意,-d
切换到curl
会将该数据作为POST
请求的正文发送,因此请务必发送参数, data
参数:
req1 = requests.post(url=Server.My_server, data=p_c)