cloudstack-cloudmonkeyのpython3化の続きです、ファイルに書き込めないのはpyhton2からpython3に成った時のバイナリの挙動が変わり、ファイルを開けるときに
f = open(json_file, 'r')
から
python
1 2f = open(json_file, 'rb') 3
にすること書き込めるようになりました。
しかし、コマンドを実行するとエラーが発生して終了してしまいます。
python
1(local) ???? > Lists resources 2Traceback (most recent call last): 3 File "/usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/cmd.py", line 214, in onecmd 4 func = getattr(self, 'do_' + cmd) 5AttributeError: 'CloudMonkeyShell' object has no attribute 'do_Lists' 6 7During handling of the above exception, another exception occurred: 8 9Traceback (most recent call last): 10 File "/usr/local/bin/cloudmonkey", line 11, in <module> 11 load_entry_point('cloudmonkey', 'console_scripts', 'cloudmonkey')() 12 File "/Users/kentaro/python/cloudstack-cloudmonkey/cloudmonkey/cloudmonkey.py", line 923, in main 13 shell.cmdloop() 14 File "/Users/kentaro/python/cloudstack-cloudmonkey/cloudmonkey/cloudmonkey.py", line 157, in cmdloop 15 super(CloudMonkeyShell, self).cmdloop(intro="") 16 File "/usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/cmd.py", line 138, in cmdloop 17 stop = self.onecmd(line) 18 File "/usr/local/Cellar/python3/3.5.2_1/Frameworks/Python.framework/Versions/3.5/lib/python3.5/cmd.py", line 216, in onecmd 19 return self.default(line) 20 File "/Users/kentaro/python/cloudstack-cloudmonkey/cloudmonkey/cloudmonkey.py", line 461, in default 21 args[1:])[x] for x in range(len(args) - 1)) 22 File "/Users/kentaro/python/cloudstack-cloudmonkey/cloudmonkey/cloudmonkey.py", line 461, in <genexpr> 23 args[1:])[x] for x in range(len(args) - 1)) 24TypeError: 'map' object is not subscriptable 25
python3 でmapの挙動が変わったらしいまではわかったのですが、次のコードが何をやっているのか全く分からず、困っています。 コードを説明してもらえませんでしょうか。
python
1 args_dict = dict(map(lambda x: [x.partition("=")[0], 2 x.partition("=")[2]], 3 args[1:])[x] for x in range(len(args) - 1))
答え (途中)
lambda は無名関数
python
1>>>g = lambda x: [x.partition("=")[0], x.partition("=")[2]] 2 3>>>g("command=listApis") 4['command', 'listApis']

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。