【问题标题】:How to append multiple items to NumPy Array如何将多个项目附加到 NumPy 数组
【发布时间】:2015-09-12 13:57:36
【问题描述】:

我有一个 json,它可以在一个列表中包含多达 10 个嵌套字典。这 10 个嵌套字典都与一个服务请求号相关联,但每个字典的请求不同。例如,地址 1 的服务请求 1 可能包含 [Containers] 列表,并且在此容器列表中 {key1:value1, key2, value2, key3:value3} 等等,最多 10 次。

如何根据字典中出现的数字成功地将这些值附加到一个字段,即 value1 = containercolor1、value2 = containercolor2、value3 = containercolor3? 请参阅下面的示例,这个相同的示例适用于我正在使用的以下 json 中的多个字段。

例如,我基本上想访问每个列表中的每个键/值对

for k_container in k_container_number_1:
      print k_container[0]

打印:

`R 9 G 0 7 8 7 7 8 6 8 7 5 R 9 乙 0 7 8 7 7 8 6 7 5 5 R 6 乙 1 2 3 4 8 7 8 7 6 7

r 9 b 0 5 3 0 2 2`

我怎样才能解决这个问题,使我的角色不循环或水平?

JSON 示例:

  {
    "Response": {
        "LastPage": "false",
        "NumOutputObjects": "1",
        "ListOfServiceRequest": {
            "ServiceRequest": [
                {
                    "AddressVerified": "Y",
                    "SRNumber": "1-20229961",
                    "ListOfLa311Containers": {
                        "La311Containers": [
                            {
                                "ContainerNumber": "R9G0665765765",
                                "ContainerType": "Green Yard Trimmings",
                                "DamageonLid": "N",
                                "DamageonAxle": "N",
                                "DamageonBody": "N",
                                "DamageonWheels": "Y",
                                "DeliveryReason": "",
                                "DriverFirstName": "",
                                "DriverLastName": "",
                                "ExchangeDetails": "",
                                "GatedCommunityMultifamilyDwelling": "",
                                "MobileHomeSpace": "",
                                "PickupReason": "",
                                "RequestFor": "Damage",
                                "ServiceDateRendered": "",
                                "TruckNo": "",
                                "Type": "Containers",
                                "CollectionLocation": "Curb",
                                "ContainerSize": "90 Gallon (Large) Green",
                                "LastUpdatedBy": "370758",
                                "ActiveStatus": "Y",
                                "PurposeofSR": "",
                                "DamageonHandleEndcap": "N",
                                "ContactFirstName": "Shawnae",
                                "ContactLastName": "Muck",
                                "Name": "062520151201141851"
                            },
                            {
                                "ContainerNumber": "R9R0877765456",
                                "ContainerType": "Blue Recycling",
                                "DamageonLid": "Y",
                                "DamageonAxle": "N",
                                "DamageonBody": "Y",
                                "DamageonWheels": "N",
                                "DeliveryReason": "",
                                "DriverFirstName": "",
                                "DriverLastName": "",
                                "ExchangeDetails": "",
                                "GatedCommunityMultifamilyDwelling": "",
                                "MobileHomeSpace": "",
                                "PickupReason": "",
                                "RequestFor": "Damage",
                                "ServiceDateRendered": "",
                                "TruckNo": "",
                                "Type": "Containers",
                                "CollectionLocation": "Curb",
                                "ContainerSize": "90 Gallon (Large) Blue",
                                "LastUpdatedBy": "370758",
                                "ActiveStatus": "Y",
                                "PurposeofSR": "",
                                "DamageonHandleEndcap": "N",
                                "ContactFirstName": "Shawnae",
                                "ContactLastName": "Muck",
                                "Name": "062520151201141852"
                            },
                            {
                                "ContainerNumber": "R9B0746754645",
                                "ContainerType": "Black Refuse",
                                "DamageonLid": "N",
                                "DamageonAxle": "N",
                                "DamageonBody": "N",
                                "DamageonWheels": "N",
                                "DeliveryReason": "",
                                "DriverFirstName": "",
                                "DriverLastName": "",
                                "ExchangeDetails": "",
                                "GatedCommunityMultifamilyDwelling": "",
                                "MobileHomeSpace": "",
                                "PickupReason": "",
                                "RequestFor": "Damage",
                                "ServiceDateRendered": "",
                                "TruckNo": "",
                                "Type": "Containers",
                                "CollectionLocation": "Curb",
                                "ContainerSize": "90 Gallon (Large) Black",
                                "LastUpdatedBy": "370758",
                                "ActiveStatus": "Y",
                                "PurposeofSR": "",
                                "DamageonHandleEndcap": "Y",
                                "ContactFirstName": "Shawnae",
                                "ContactLastName": "Muck",
                                "Name": "062520151201141853"
                            }
                        ]
                    }
                }
            ]
        }
    }
}

要附加到 NumPy 数组的当前代码:

Containerdt = np.dtype([('Address', 'U128'),
                                ('Y_CoordShape', '<f8'),
                                ('X_CoordShape', '<f8'),
                                ('Y_COR', '<f8'),
                                ('X_COR', '<f8'),
                                ('ReasonCode','U128'),
                                ('NUMBERCYLA', 'U128'),
                                ('SRNumber', 'U128'),
                                ('Name', 'U128'),
                                ('RESOLUTION_CODE','U128'),
                               ('HOME_PHONE', 'U40'),
                                ('CreatedDate', 'U128'),
                                ('UpdatedDate', 'U128'),
                                # ('ItemDesc', 'U128'),
                                ('SCHED_DATE', 'U128'),
                                (ContainerNumber01, 'U128'), 
                                (ContainerNumber02, 'U128'), 
                                (ContainerNumber03, 'U128'), 

])



containerItems.append((ContainerAddress,
             container_x,
             container_y,
              container_x,
              container_y,
              Container_ReasonCode,
              Container_SRNumber,
              Container_SRNumber,
             Container_FullName,
              Container_ResolutionCode,
              Container_HomePhone,
              Container_CreatedDate,
              Container_UpdatedDate,
            # "ItemDesc",
            date_object,
            "R9G0665765765",  #FROM 1st Dictionary under ['ListofLa311Containers']['La311Containers']

             "R9R0877765456", #FROM 2nd Dictionary under ['ListofLa311Containers']['La311Containers']

             "R9B0746754645", #FROM 3RD Dictionary under ['ListofLa311Containers']['La311Containers']

))

【问题讨论】:

    标签: python arrays json numpy dictionary


    【解决方案1】:

    containerItems 是列表还是数组(具有这种复杂的 dtype)?

    如果是列表,很好。如果是数组,则说明您在滥用它。语法错误,使用上下文错误。

    在不试图弄清楚你到底想要做什么的情况下,我建议你编写一个(或两个)函数,从列表中获取一个字典,然后挑选出想要的部分,并将它们返回到一个适当的元组中。您可以在该函数中打包尽可能多的逻辑。

    在这个阶段,您应该考虑处理字典以及生成列表和/或元组。不要将自己与结构化阵列业务混淆。构造结构化数组的最佳方式是在最后,给np.array 一个元组列表和一个数据类型。不要通过附加元组来一点一点地构造它。

    【讨论】:

    • 我实际上想出了一个解决方法,但现在我的输出是水平打印的,我可以按索引访问我的列表。即for k_container in k_container_number_1: print k_container[0],但我的输出是R 9 G 0 7 8 7 7 8 6 8 7 5 R 9 B 0 7 8 7 7 8 6 7 5 5 R 6 B 1 2 3 4 8 7 8 7 6 7 r 9 b 0 5 3 0 2 2
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-21
    • 1970-01-01
    • 2011-07-01
    • 2021-10-12
    • 1970-01-01
    • 2013-12-03
    相关资源
    最近更新 更多