将一个JSON字符串与Python中的另一个字符串连接起来

时间:2015-07-14 14:04:27

标签: json python-2.7 aws-ec2

我有一个字典如下

(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

但是\&#39;也正在连接,所以再次aws cli不接受斜线。所以我不想要斜线,但我想要单引号&#39;。 aws cli也不接受双引号。

1 个答案:

答案 0 :(得分:0)

我认为您正在组合多种编码,因为字典中的一个字符串前面有一个u。在连接它们之前,Check out this modulenormalize所有字符串。