在python中将args解析为json元素

时间:2016-10-03 11:14:30

标签: python json args

我有一个数据结构,我想填写cmd args

params = {
  ...
  ...
  "blockX": "{\"nameX\":["\Arg1\","\Arg2\",\"Arg3\"........"\ArgX\"]}",
  ...
  ...
}

然后我用params作为数据运行一个post请求:

r = requests.post("https://url", data=params)

我只知道如何使用一个元素

"BlockX": "{\"nameX\": \"%s\"}" %ArgX,

此致

2 个答案:

答案 0 :(得分:0)

如果你的论点在args列表中,那么你可以试试这个:

import json
params['blockX'] = json.dumps({'nameX': args})

答案 1 :(得分:0)

您的示例建议您要join参数。您可以通过与分隔符合并将任何列表转换为单个字符串:

args = ['foo', 'bar', 'hold the mustard']
print('", "'.join(args))

为了获取您的列表'"Arg1", "Arg2"'等,请将其加入'","'分隔符并将 插入到模板中:

'{"nameX": ["%s"]}' % '", "'.join(args)

请注意'允许您跳过每个"的转义。在您的示例中,这看起来像:

params = {
  #...
  "blockX": '{"nameX": ["%s"]}' % '", "'.join(args),
  # ...
 }

请记住,您正在将JSON的字符串表示形式放入JSON中!这是......也许不是正确的事情。一个合适的API只需要一个JSON,在这种情况下,您可以直接转储args

params = {
  #...
  "blockX": {
    "nameX": args
  },
  # ...
 }