如何在NumPy中映射字段

时间:2015-03-02 03:45:19

标签: python json numpy

我有一个脚本将JSON Web服务写入esri文件地理数据库。地址和请求之间存在1-M关系,请求被读取和写入3个字段。下面是JSON响应的示例以及数据在表中的显示方式。我希望我的数据读作一个功能/行,其中包含与一个地址和服务请求号相关联的多个请求类型和数量。即地址,类型,电子废物项目1,数量1,电子废物项目2,数量2等。

{
"Response": {
    "ListOfServiceRequest": {
        "ServiceRequest": [
            {
                "ActionTaken": "", 
                "AddressVerified": "Y", 
                "Anonymous": "N", 
                "AssignTo": "EV", 
                "Assignee": "", 
                "CreatedByUserLogin": "MYLATHREEONEONE", 
                "CreatedDate": "02/17/2015 16:53:25", 
                "CustomerAccessNumber": "", 
                "Email": "mylathreeoneone@gmail.com", 
                "FirstName": "Myla", 
                "HomePhone": "2131234567", 
                "IntegrationId": "02172015165417667", 
                "LADWPAccountNo": "", 
                "Language": "", 
                "LastName": "Threeoneone", 
                "Latitude": "34.176277", 
                "ListOfAuditTrailItem2": {
                    "AuditTrailItem2": [
                        {
                            "Date": "02/27/2015 11:45:46", 
                            "EmployeeLogin": "EAIBOS", 
                            "Field": "Status", 
                            "NewValue": "Closed", 
                            "OldValue": "Open"
                        }, 
                        {
                            "Date": "02/27/2015 11:45:46", 
                            "EmployeeLogin": "EAIBOS", 
                            "Field": "Updated By User", 
                            "NewValue": "EAIBOS", 
                            "OldValue": "MYLATHREEONEONE"
                        }
                    ]
                }, 
                "ListOfChildServiceRequest": {}, 
                "ListOfLa311BarricadeRemoval": {}, 
                "ListOfLa311BeesOrBeehive": {}, 
                "ListOfLa311BillingCsscAdjustment": {}, 
                "ListOfLa311BillingEccAdjustment": {}, 
                "ListOfLa311BillingRsscAdjustment": {}, 
                "ListOfLa311BillingRsscExemption": {}, 
                "ListOfLa311BrushItemsPickup": {}, 
                "ListOfLa311BulkyItem": {}, 
                "ListOfLa311BusPadLanding": {}, 
                "ListOfLa311Containers": {}, 
                "ListOfLa311CurbRepair": {}, 
                "ListOfLa311DeadAnimalRemoval": {}, 
                "ListOfLa311DocumentLog": {}, 
                "ListOfLa311ElectronicWaste": {
                    "La311ElectronicWaste": [
                        {
                            "CollectionLocation": "Gated Community/Multifamily Dw", 
                            "DriverFirstName": "Moody", 
                            "DriverLastName": "Frederick10/09/2014", 
                            "ElectronicWestType": "Microwaves", 
                            "GatedCommunityMultifamilyDwelling": "Curb", 
                            "IllegalDumpCollectionLoc": "", 
                            "IllegallyDumped": "N", 
                            "ItemCount": "3", 
                            "LastUpdatedBy": "", 
                            "MobileHomeSpace": "", 
                            "Name": "021720151654176711", 
                            "OtherElectronicWestType": "", 
                            "ServiceDateRendered": "", 
                            "TruckNo": "SC Truck 10", 
                            "Type": "Electronic Waste"
                        }, 
                        {
                            "CollectionLocation": "Gated Community/Multifamily Dw", 
                            "DriverFirstName": "Moody", 
                            "DriverLastName": "Frederick10/09/2014", 
                            "ElectronicWestType": "Televisions (Any Size)", 
                            "GatedCommunityMultifamilyDwelling": "Curb", 
                            "IllegalDumpCollectionLoc": "", 
                            "IllegallyDumped": "N", 
                            "ItemCount": "6", 
                            "LastUpdatedBy": "", 
                            "MobileHomeSpace": "", 
                            "Name": "021720151654176722", 
                            "OtherElectronicWestType": "", 
                            "ServiceDateRendered": "", 
                            "TruckNo": "SC Truck 10SC Truck 10", 
                            "Type": "Electronic Waste"
                        }, 
                        {
                            "CollectionLocation": "Gated Community/Multifamily Dw", 
                            "DriverFirstName": "Moody", 
                            "DriverLastName": "Frederick10/09/2014", 
                            "ElectronicWestType": "VCR/DVD Players", 
                            "GatedCommunityMultifamilyDwelling": "Curb", 
                            "IllegalDumpCollectionLoc": "", 
                            "IllegallyDumped": "N", 
                            "ItemCount": "1", 
                            "LastUpdatedBy": "", 
                            "MobileHomeSpace": "", 
                            "Name": "021720151654176723", 
                            "OtherElectronicWestType": "", 
                            "ServiceDateRendered": "", 
                            "TruckNo": "SC Truck 10SC Truck 10", 
                            "Type": "Electronic Waste"
                        }
                    ]
                }, 
                "ListOfLa311Flooding": {}, 
                "ListOfLa311GeneralStreetInspection": {}, 
                "ListOfLa311GenericBc": {
                    "La311GenericBc": [
                        {
                            "ATTRIB_08": "N", 
                            "ATTRIB_16": "", 
                            "ListOfLa311GenericbcAuditTrail": {
                                "La311GenericbcAuditTrail": [
                                    {
                                        "Date": "02/27/2015 15:15:28", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver Last Name", 
                                        "NewValue": "Frederick10/09/2014", 
                                        "OldValue": "Frederick"
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver First Name", 
                                        "NewValue": "Moody", 
                                        "OldValue": ""
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver Last Name", 
                                        "NewValue": "Frederick", 
                                        "OldValue": ""
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Truck No", 
                                        "NewValue": "SC Truck 10", 
                                        "OldValue": ""
                                    }
                                ]
                            }, 
                            "NAME": "021720151654176711", 
                            "PAR_ROW_ID": "1-24QH7", 
                            "ROW_ID": "1-24QHR", 
                            "TYPE": "Electronic Waste"
                        }, 
                        {
                            "ATTRIB_08": "N", 
                            "ATTRIB_16": "", 
                            "ListOfLa311GenericbcAuditTrail": {
                                "La311GenericbcAuditTrail": [
                                    {
                                        "Date": "02/27/2015 15:15:28", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver Last Name", 
                                        "NewValue": "Frederick10/09/2014", 
                                        "OldValue": "Frederick"
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver First Name", 
                                        "NewValue": "Moody", 
                                        "OldValue": ""
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver Last Name", 
                                        "NewValue": "Frederick", 
                                        "OldValue": ""
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Truck No", 
                                        "NewValue": "SC Truck 10SC Truck 10", 
                                        "OldValue": ""
                                    }
                                ]
                            }, 
                            "NAME": "021720151654176722", 
                            "PAR_ROW_ID": "1-24QH7", 
                            "ROW_ID": "1-24QHS", 
                            "TYPE": "Electronic Waste"
                        }, 
                        {
                            "ATTRIB_08": "N", 
                            "ATTRIB_16": "", 
                            "ListOfLa311GenericbcAuditTrail": {
                                "La311GenericbcAuditTrail": [
                                    {
                                        "Date": "02/27/2015 15:15:28", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver Last Name", 
                                        "NewValue": "Frederick10/09/2014", 
                                        "OldValue": "Frederick"
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver First Name", 
                                        "NewValue": "Moody", 
                                        "OldValue": ""
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Driver Last Name", 
                                        "NewValue": "Frederick", 
                                        "OldValue": ""
                                    }, 
                                    {
                                        "Date": "02/27/2015 11:45:46", 
                                        "EmployeeLogin": "EAIBOS", 
                                        "Field": "Truck No", 
                                        "NewValue": "SC Truck 10SC Truck 10", 
                                        "OldValue": ""
                                    }
                                ]
                            }, 
                            "NAME": "021720151654176723", 
                            "PAR_ROW_ID": "1-24QH7", 
                            "ROW_ID": "1-24QHT", 
                            "TYPE": "Electronic Waste"
                        }, 
                        {
                            "ATTRIB_08": "", 
                            "ATTRIB_16": "", 
                            "ListOfLa311GenericbcAuditTrail": {}, 
                            "NAME": "02172015165417667100", 
                            "PAR_ROW_ID": "1-24QH7", 
                            "ROW_ID": "1-24QHU", 
                            "TYPE": "GIS"
                        }, 
                        {
                            "ATTRIB_08": "", 
                            "ATTRIB_16": "", 
                            "ListOfLa311GenericbcAuditTrail": {}, 
                            "NAME": "021720151654176671", 
                            "PAR_ROW_ID": "1-24QH7", 
                            "ROW_ID": "1-24QHQ", 
                            "TYPE": "SR Photo ID"
                        }
                    ]
                }, 
                "ListOfLa311GisLayer": {
                    "La311GisLayer": [
                        {
                            "A_Call_No": "", 
                            "Area": "0", 
                            "BOSRadioHolderName": "", 
                            "CommunityPlanningArea": "", 
                            "Day": "THURSDAY", 
                            "DirectionSuffix": "", 
                            "DistrictAbbr": "", 
                            "DistrictName": "EV", 
                            "DistrictNumber": "", 
                            "DistrictOffice": "", 
                            "Fraction": "", 
                            "LastUpdatedBy": "", 
                            "Name": "02172015165417667100", 
                            "R_Call_No": "", 
                            "SectionId": "", 
                            "ShortDay": "Thu", 
                            "StreetFrom": "", 
                            "StreetLightId": "", 
                            "StreetLightStatus": "", 
                            "StreetTo": "", 
                            "Type": "GIS", 
                            "Y_Call_No": ""
                        }
                    ]
                }, 
                "ListOfLa311GraffitiRemoval": {}, 
                "ListOfLa311GuardWarningRailMaintenance": {}, 
                "ListOfLa311GutterRepair": {}, 
                "ListOfLa311HomelessEncampment": {}, 
                "ListOfLa311IllegalAutoRepair": {}, 
                "ListOfLa311IllegalConstruction": {}, 
                "ListOfLa311IllegalConstructionFence": {}, 
                "ListOfLa311IllegalDischargeOfWater": {}, 
                "ListOfLa311IllegalDumpingInProgress": {}, 
                "ListOfLa311IllegalDumpingPickup": {}, 
                "ListOfLa311IllegalExcavation": {}, 
                "ListOfLa311IllegalSignRemoval": {}, 
                "ListOfLa311IllegalVending": {}, 
                "ListOfLa311InformationOnly": {}, 
                "ListOfLa311LandMudSlide": {}, 
                "ListOfLa311LeafBlowerViolation": {}, 
                "ListOfLa311ManualPickup": {}, 
                "ListOfLa311MedianIslandMaintenance": {}, 
                "ListOfLa311MetalHouseholdAppliancesPickup": {}, 
                "ListOfLa311MoveInMoveOut": {}, 
                "ListOfLa311MultipleStreetlightIssue": {}, 
                "ListOfLa311NewsRackViolation": {}, 
                "ListOfLa311Obstructions": {}, 
                "ListOfLa311Other": {}, 
                "ListOfLa311OvergrownVegetationPlants": {}, 
                "ListOfLa311PalmFrondsDown": {}, 
                "ListOfLa311Pothole": {}, 
                "ListOfLa311Resurfacing": {}, 
                "ListOfLa311SanitationBillingBif": {}, 
                "ListOfLa311SanitationBillingCssc": {}, 
                "ListOfLa311SanitationBillingEcc": {}, 
                "ListOfLa311SanitationBillingInquiry": {}, 
                "ListOfLa311SanitationBillingLifeline": {}, 
                "ListOfLa311SanitationBillingRssc": {}, 
                "ListOfLa311SanitationBillingSrf": {}, 
                "ListOfLa311ServiceNotComplete": {}, 
                "ListOfLa311ServiceRequestNotes": {
                    "La311ServiceRequestNotes": [
                        {
                            "Comment": "Out on the sidewalk near the curb.  Hopefully it is still there.", 
                            "CommentType": "Address Comments", 
                            "CreatedByUser": "MYLATHREEONEONE", 
                            "CreatedDate": "02/17/2015 16:53:26", 
                            "Date1": "", 
                            "Date2": "", 
                            "Date3": "", 
                            "FeedbackSRType": "", 
                            "IntegrationId": "021720151654176661", 
                            "IsSrNoAvailable": "", 
                            "ListOfLa311SrNotesAuditTrail": {}, 
                            "Notification": "N", 
                            "Text1": ""
                        }, 
                        {
                            "Comment": "So glad to get rid of this old junk.  Thanks.", 
                            "CommentType": "External", 
                            "CreatedByUser": "MYLATHREEONEONE", 
                            "CreatedDate": "02/17/2015 16:53:26", 
                            "Date1": "", 
                            "Date2": "", 
                            "Date3": "", 
                            "FeedbackSRType": "", 
                            "IntegrationId": "021720151654176662", 
                            "IsSrNoAvailable": "", 
                            "ListOfLa311SrNotesAuditTrail": {}, 
                            "Notification": "N", 
                            "Text1": ""
                        }
                    ]
                }, 
                "ListOfLa311SidewalkRepair": {}, 
                "ListOfLa311SingleStreetlightIssue": {}, 
                "ListOfLa311SrPhotoId": {
                    "La311SrPhotoId": [
                        {
                            "LastUpdatedBy": "", 
                            "Name": "021720151654176671", 
                            "PhotoId": "https://myla311.lacity.org/portal/docview?id=04b8ba678fe21d32b05673eb9ad7711b", 
                            "Type": "SR Photo ID"
                        }
                    ]
                }, 
                "ListOfLa311StreetSweeping": {}, 
                "ListOfLa311StreetTreeInspection": {}, 
                "ListOfLa311StreetTreeViolations": {}, 
                "ListOfLa311SubscribeDuplicateSr": {}, 
                "ListOfLa311TablesAndChairsObstructing": {}, 
                "ListOfLa311TreeEmergency": {}, 
                "ListOfLa311TreeObstruction": {}, 
                "ListOfLa311TreePermits": {}, 
                "ListOfLa311WeedAbatementForPrivateParcels": {}, 
                "LoginUser": "", 
                "Longitude": "-118.455249", 
                "MobilOS": "", 
                "NewContactEmail": "", 
                "NewContactFirstName": "", 
                "NewContactLastName": "", 
                "NewContactPhone": "", 
                "Owner": "BOS", 
                "ParentSRLinkDate": "", 
                "ParentSRLinkUser": "", 
                "ParentSRNumber": "", 
                "ParentSRStatus": "", 
                "ParentSRType": "", 
                "Priority": "Normal", 
                "ReasonCode": "", 
                "RescheduleCounter": "", 
                "ResolutionCode": "SW", 
                "SRAddress": "5810 N WILLIS AVE, 91411", 
                "SRAddressName": "", 
                "SRAreaPlanningCommission": "South Valley APC", 
                "SRAreaPlanningCommissionId": "3", 
                "SRCity": "", 
                "SRCommunityPoliceStation": "VALLEY BUREAU", 
                "SRCommunityPoliceStationAPREC": "VAN NUYS", 
                "SRCommunityPoliceStationPREC": "9", 
                "SRCouncilDistrictMember": "Tom LaBonge", 
                "SRCouncilDistrictNo": "4", 
                "SRCrossStreet": "", 
                "SRDirection": "N", 
                "SRHouseNumber": "5810", 
                "SRNeighborhoodCouncilId": "20", 
                "SRNeighborhoodCouncilName": "VAN NUYS NC", 
                "SRNumber": "1-3580171", 
                "SRStreetName": "WILLIS", 
                "SRSuffix": "AVE", 
                "SRTBColumn": "J", 
                "SRTBMapGridPage": "561", 
                "SRTBRow": "1", 
                "SRType": "Electronic Waste", 
                "SRUnitNumber": "5810", 
                "SRXCoordinate": "6423983", 
                "SRYCoordinate": "1886848", 
                "ServiceDate": "02/19/2015 00:00:00", 
                "Source": "", 
                "Status": "Closed", 
                "UpdatedByUserLogin": "EAIBOS", 
                "UpdatedDate": "02/27/2015 15:14:22", 
                "Zipcode": "91411"
            }
        ]
    }, 
    "NumOutputObjects": "1"

脚本

import json
import jsonpickle
import requests
import arcpy

fc = "C:\MYLATesting.gdb\MYLA311"
if arcpy.Exists(fc):
  arcpy.Delete_management(fc)



ListTable ="C:\MYLATesting.gdb\ListView"
if arcpy.Exists(ListTable):
  arcpy.Delete_management(ListTable)



f2 = open('C:\Users\Administrator\Desktop\DetailView.json', 'r')
data2 = jsonpickle.encode( jsonpickle.decode(f2.read()) )

url2 = "myURL"
headers2 = {'Content-type': 'text/plain', 'Accept': '/'}

r2 = requests.post(url2, data=data2, headers=headers2)
decoded2 = json.loads(r2.text)

items = []
for sr in decoded2['Response']['ListOfServiceRequest']['ServiceRequest']:
    SRAddress = sr['SRAddress']
    latitude = sr['Latitude']
    longitude = sr['Longitude']










    for ew in sr["ListOfLa311ElectronicWaste"][u"La311ElectronicWaste"]:
        CommodityType = ew['Type']
        ItemType = ew['ElectronicWestType']
        ItemCount = ew['ItemCount']

        items.append((SRAddress,
                      latitude,
                      longitude,
                      CommodityType,
                      ItemType,
                      ItemCount))

import numpy as np    #NOTE THIS
dt = np.dtype([('SRAddress', 'U40'),
                ('latitude', '<f8'),
                ('longitude', '<f8'),
                ('Type', 'U40'),
                ('ElectronicWestType', 'U40'),
                ('ItemCount', 'U40')])
arr = np.array(items,dtype=dt)
sr = arcpy.SpatialReference(4326)
arcpy.da.NumPyArrayToFeatureClass(arr, fc, ['longitude', 'latitude'], sr )




print json.dumps(decoded2, sort_keys=True, indent=4)

enter image description here

0 个答案:

没有答案