Select to view content in your preferred language

NumPy Array to Feature Class: NameError from Inner Loop Variables

3010
1
05-11-2015 08:46 AM
GeoffreyWest1
Deactivated User

I have a NumPy Array to FC script that parses a JSON web-service. The outer loop writes to my FC correctly, however my inner loop variables come back as not defined when appending the items. The outer loop variables include geographic data such as lon/lat, address and other ancillary information about a service request such as service request number, service request type, time created, etc.

The inner loop contains information relating to each service request number, address, etc.

I am using Python 2.6 and ArcGIS 10.2.1

import arcpy
import numpy
import requests
import json
import jsonpickle


fc
= "myFC"
f2
=open('C:\Users\GeoffreyWest\Desktop\Request.json')
data2
= jsonpickle.encode(data2)

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

r2
= requests.post(url2, data=data2, headers=headers2)
decoded2
= json.loads(r2.text)
print json.dumps(decoded2, sort_keys=True, indent=4)
if arcpy.Exists(fc):
  arcpy
.Delete_management(fc)
try:
  r2
except requests.exceptions.ConnectTimeout as e:
  
print "Too slow Mojo!"


items
= []
for sr in decoded2['Response']['ListOfServiceRequest']['ServiceRequest']:
  
SRAddress = sr['SRAddress']
  
Latitude = sr['Latitude']
  
Longitude = sr['Longitude']
  
ReasonCode = sr['ReasonCode']
  
SRNumber = sr['SRNumber']
  
FirstName = sr['FirstName']
  
LastName = sr['LastName']
  
ResolutionCode = sr['ResolutionCode']
  
HomePhone = sr['HomePhone']
  
CreatedDate = sr['CreatedDate']
  
UpdatedDate = sr['UpdatedDate']
  
BulkyItem = sr['ListOfLa311BulkyItem']
  
ElectronicWaste = sr['ListOfLa311ElectronicWaste']
  
MoveInMoveOut = sr['ListOfLa311MoveInMoveOut']
  
IllegalDumping = sr['ListOfLa311IllegalDumpingPickup']
  
ServiceNotComplete = sr['ListOfLa311ServiceNotComplete']
  
BrushItems = sr['ListOfLa311BrushItemsPickup']
  
Containers = sr['ListOfLa311Containers']
   MHA
= sr['ListOfLa311MetalHouseholdAppliancesPickup']
  
DeadAnimalRemoval = sr['ListOfLa311DeadAnimalRemoval']
  
Manual = sr['ListOfLa311ManualPickup']
  
CreatedDate = datetime.datetime.strptime(CreatedDate, "%m/%d/%Y %H:%M:%S")
  
UpdatedDate = datetime.datetime.strptime(UpdatedDate, "%m/%d/%Y %H:%M:%S")


  
for sr in ElectronicWaste:
  
for ewastelocation in ElectronicWaste['La311ElectronicWaste']:
  locationewaste
=  ewastelocation['CollectionLocation']
  
for sr in ElectronicWaste:
  
for ewastetype in ElectronicWaste['La311ElectronicWaste']:
  itemEwaste
=  ewastetype['ElectronicWestType']

dt
= np.dtype([('Address', 'U40'),
  
('LatitudeShape', '<f8'),
  
('LongitudeShape', '<f8'),
  
('Latitude', '<f8'),
  
('Longitude', '<f8'),
  
('ReasonCode','U128'),
  
('SRNumber', 'U40'),
  
('ElectronicWaste', 'U128'),
  
('FirstName', 'U40'),
  
('LastName', 'U40'),
  
('ResolutionCode','U128'),
  
('HomePhone', 'U40'),
  
('CreatedDate', 'U128'),
  
('UpdatedDate', 'U128'),

  
])


  items
.append((SRAddress,
  
Latitude,
  
Longitude,
  
Latitude,
  
Longitude,
  
ReasonCode,
  
SRNumber,
  locationewaste
,
  
FirstName,
  
LastName,
  
ResolutionCode,
  
HomePhone,
  
CreatedDate,
  
UpdatedDate,



  
))


sr
= arcpy.SpatialReference(4326)

arr
= np.array(items,dtype=dt)
NumPyArray = arcpy.da.NumPyArrayToFeatureClass(arr, fc, ['longitudeshape', 'latitudeshape'], sr)
print "success"

Output NameError: name 'locationewaste' is not defined

0 Kudos
1 Reply
DarrenWiens2
MVP Alum

For better help, please refer to this link for posting code blocks that will maintain your indentation.

0 Kudos