在Python中将JSON字符串与另一个字符串连接
我有一本字典如下在Python中将JSON字符串与另一个字符串连接,json,python-2.7,aws-ec2,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
(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'>
(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}]'
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命令所要求的格式
如何在接口_list1变量周围用引号连接
注:
我试过以下方法
'[{"DeviceIndex": 0, "NetworkInterfaceId": "eni-2b9dcb04", "DeleteOnTermination": true}, {"DeviceIndex": 1, "NetworkInterfaceId": "eni-289dcb07", "DeleteOnTermination": true}]'
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再次不接受斜杠。所以我不想要斜杠,但我想要单引号。aws cli也不接受双引号。我认为您正在组合多种编码,正如字典中的一个字符串前面有一个
u
所示。和在连接所有字符串之前对其进行规范化 “协调”-连接?!连接,当我执行interface_list1=json时编辑了问题。转储(interface_list)其转换为字符串并删除unicode(u)在连接之前将所有字符串解码为ascii:str1.Decode('ascii')+'literal_string'。Decode('ascii'))
--如果这样做有效,那么您就知道问题出在多个编码上。尝试解码,但当我像这样连接时,它总是添加“甚至认为我只是添加而已”