如何解决用C#开发复杂的字典结构在python中具有字典结构,但是现在我试图用C#
我试图在C#中复制一个python字典,然后访问它的成员以设置变量的值。
下面是我需要用C#语法编写的python字典:
VPC_DEFAULTS = {
# prod
"aws://1234/us-east-1": {
"vpc_name": "vpc-us-east-1-it-prod","subnets": {
"application": [ "subnet-1234","subnet-9764" ],"data": [ "subnet-4323","subnet-3456" ],"edge": [ "subnet-1763","subnet-1373" ],}
},# dev
"aws://34652/us-east-1": {
"vpc_name": "vpc-us-east-1-it-dev","subnets": {
"application": [
{ "subnet_id": "subnet-7623","az": "us-east-1a" },{ "subnet_id": "subnet-7424","az": "us-east-1b" },],"data": [
{ "subnet_id": "subnet-4673",{ "subnet_id": "subnet-1853","edge": [
{ "subnet_id": "subnet-8414",{ "subnet_id": "subnet-7423",}
然后,当我们设置了该字典后,我需要设置以下变量的值:
vpc = ec2.Vpc.from_lookup( self,"VPC",vpc_name=VPC_DEFAULTS[ self.environment ][ "vpc_name" ]
)
iSubnets = {}
for layer in VPC_DEFAULTS[ self.environment ][ "subnets" ]:
member = iSubnets[ layer ] = []
for subnet_info in VPC_DEFAULTS[ self.environment ][ "subnets" ][ layer ]:
member.append(
ec2.Subnet.from_subnet_attributes( self,"SubnetFromId-" + layer + "-" + subnet_info["subnet_id"],subnet_id=subnet_info["subnet_id"],availability_zone=subnet_info["az"]
)
)
在上面,使用python从字典中设置了变量名。我需要以类似的方式在c#中设置变量名称vpc_name和数组iSubnets。
任何以下方面的帮助都将非常有用,因为我对C#还是很陌生。
解决方法
更好地创建如下所示的类结构,并将JSON反序列化为Class的对象,然后执行操作
public class VPCS {
public List<DataCenter> dataCenter { get; set; }
}
public class DataCenter {
public string vpc_name { get; set; }
public Subnets subnets { get; set; }
}
public class Subnets {
public List<Application> application { get; set; }
public List<Datum> data { get; set; }
public List<Edge> edge { get; set; }
}
public class Application {
public string subnet_id { get; set; }
public string az { get; set; }
}
public class Datum {
public string subnet_id { get; set; }
public string az { get; set; }
}
public class Edge {
public string subnet_id { get; set; }
public string az { get; set; }
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。