0

我有一本字典如下

(Pdb) interface_list
[{'DeviceIndex': 0, 'NetworkInterfaceId': u'eni-2b9dcb04', 'DeleteOnTermination': True}, {'DeviceIndex': 1, 'NetworkInterfaceId': u'eni-289dcb07', 'DeleteOnTermination': True}]

现在我将其转换为 JSON 字符串,如下所示,

(pdb)!interface_list1 = json.dumps(interface_list)
(pdb)interface_list1
'[{"DeviceIndex": 0, "NetworkInterfaceId": "eni-2b9dcb04", "DeleteOnTermination": true}, {"DeviceIndex": 1, "NetworkInterfaceId": "eni-289dcb07", "DeleteOnTermination": true}]'
(Pdb) type(interface_list1)
<type 'str'>

现在我尝试将这个 JSON 字符串与另一个字符串连接起来,如下所示,

(Pdb) !cmd = "aws ec2 run-instances --instance-type " + Image_type + " --network-interfaces " + interface_list1 + " --image-id " + Ami_ID + " --no-verify-ssl --endpoint-url " + end_point_url
(Pdb) cmd
'aws ec2 run-instances --instance-type m3.large --network-interfaces [{"DeviceIndex": 0, "NetworkInterfaceId": "eni-2b9dcb04", "DeleteOnTermination": true}, {"DeviceIndex": 1, "NetworkInterfaceId": "eni-289dcb07", "DeleteOnTermination": true}] --image-id ami-879f4bec --no-verify-ssl --endpoint-url https://ec2.us-east-1.amazonaws.com'

它没有在以下内容周围添加引号,

 '[{"DeviceIndex": 0, "NetworkInterfaceId": "eni-2b9dcb04", "DeleteOnTermination": true}, {"DeviceIndex": 1, "NetworkInterfaceId": "eni-289dcb07", "DeleteOnTermination": true}]'

由于这个问题,当我执行系统命令时,我收到一个错误,它不是 aws cli 命令所需的格式。

如何与 interface_list1 变量周围的引号连接?

注意:我尝试了以下方法,

cmd = "aws ec2 run-instances --instance-type \'" + Image_type + "\' --network-interfaces " + interface_list1 + " --image-id " + Ami_ID + " --no-verify-ssl --endpoint-url " + end_point_url

但是 \' 也被连接起来,因此 aws cli 再次不接受 slash 。所以我不想要斜线,但我想要单引号 '. aws cli 也不接受双引号。

4

1 回答 1

0

我认为您正在组合多种编码,正如u字典中的一个字符串前面有一个所示。在连接它们之前检查这个模块normalize你所有的字符串。

于 2015-07-14T14:15:52.913 回答