Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于使用远程API创建docker容器的Python脚本_Python_Json_Docker - Fatal编程技术网

用于使用远程API创建docker容器的Python脚本

用于使用远程API创建docker容器的Python脚本,python,json,docker,Python,Json,Docker,我正在尝试使用Python脚本使用Docker远程API创建一个Docker容器来进行后期操作。这是我的Python脚本:- import requests import json url = "http://localhost:4243/containers/create" payload = {'Hostname':'','User':'','Memory':'0','MemorySwap':'0','AttachStdin':'false','AttachStdout':'t rue

我正在尝试使用Python脚本使用Docker远程API创建一个Docker容器来进行后期操作。这是我的Python脚本:-

import requests
import json
url = "http://localhost:4243/containers/create"
payload = {'Hostname':'','User':'','Memory':'0','MemorySwap':'0','AttachStdin':'false','AttachStdout':'t    rue','AttachStderr':'true','PortSpecs':'null','Privileged':    'false','Tty':'false','OpenStdin':'false','StdinOnce':'false','Env':'null','Cmd':['date'],'Dns':'null','Image':'ubuntu','Volumes':{},'VolumesFrom':'','WorkingDir':''}
headers = {'content-type': 'application/json', 'Accept': 'text/plain'}
print requests.post(url, data = json.dumps(payload), headers=headers).text
但是当我运行脚本时,它显示了这个错误

json: cannot unmarshal string into Go value of type bool
我的剧本怎么了?我使用Python v2.7.5和Ubuntu 13.10的HTTP请求库。
我不熟悉docker和python脚本。如有任何帮助,我们将不胜感激。

如评论中所述,您使用的类型不正确

具体而言:

  • 布尔值必须是
    True
    False
    ,而不是
    “True”
    “False”
  • Dns
    Env
    PortSpecs
    必须是
    None
    ,而不是
    “null”
  • Memory
    MemorySwap
    必须是
    0
    而不是
    “0”
您可以在中看到所有类型定义

下面是一个有效载荷:

payload={
 'AttachStderr': True,
 'AttachStdin': False,
 'AttachStdout': True,
 'Cmd': ['date'],
 'Dns': None,
 'Env': None,
 'Hostname': '',
 'Image': 'ubuntu',
 'Memory': 0,
 'MemorySwap': 0,
 'OpenStdin': False,
 'PortSpecs': None,
 'Privileged': False,
 'StdinOnce': False,
 'Tty': False,
 'User': '',
 'Volumes': {},
 'VolumesFrom': '',
 'WorkingDir': '',
}

但不知何故,如果解析器能够准确地分辨出哪个字段不能被解析,那就太好了:-)尝试使用
True
False
来代替有效负载指令中的字符串
“True”
“False”
。我尝试了使用True和False。现在它显示了这个错误-json:无法将字符串解组为[]stringYes:)类型的Go值。我使用了正确的类型,现在它工作得很好。谢谢