Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- import json
- import requests
- import re
- import arcpy
- arcpy.env.overwriteOutput = True
- jurisdiction_code = 'us_az'
- key = 'xxxxxxxxxxxxxxxxxxx' #key 2000/daily
- api_key = ''
- if key:
- api_key = '&api_token=' + key + '&per_page=100'
- fc = r'C:\Users\Noah\Desktop\gundog\chandler\test\test_parcels_codes_diss_cln.shp'
- arcpy.AddField_management(fc, 'r_address', "TEXT", "", "", "200")
- arcpy.AddField_management(fc, 'agent', "TEXT", "", "", "50")
- arcpy.AddField_management(fc, 'a_address', "TEXT", "", "", "200")
- fields = ['OWNER','company_id','agent','a_address','r_address']
- def hasNumbers(inputString):
- return any(char.isdigit() for char in inputString)
- def get_companies(company):
- print company['agent_name']
- a_company = {
- 'agent': company['agent_name'],
- 'agent_address': company['agent_address'],
- 'registered_address': company['registered_address_in_full']
- }
- return a_company
- def main():
- company_ids = [row[1] for row in arcpy.da.SearchCursor(fc, fields)]
- uniqueValues = set(company_ids)
- fl = arcpy.MakeFeatureLayer_management(fc, "subs_fl")
- count = 1
- for cid in uniqueValues:
- print 'Request No : ' + str(count)
- obj = """"company_id"='%s' """ % (cid)
- print obj
- arcpy.SelectLayerByAttribute_management (fl,'NEW_SELECTION', obj)
- print arcpy.GetCount_management(fl)
- URL = "https://api.opencorporates.com/v0.4/companies/us_az/{0}?sparse=true&api_token={1}" .format(cid, key)
- r = requests.get(url=URL)
- data = r.json()
- try:
- myDict = get_companies(data['results']['company'])
- agent = myDict.get('agent')
- a_add = myDict.get('agent_address')
- r_add = myDict.get('registered_address')
- if a_add:
- a_add_list = [item for item in a_add.split('\n')]
- a_add_list_string = ' '.join(a_add_list)
- print a_add_list_string
- arcpy.CalculateField_management (fl, "a_address", '"{0}"'.format (a_add_list_string))
- if r_add:
- r_add_list = [item for item in r_add.split('\n')]
- r_add_list_string = ' '.join(r_add_list)
- print r_add_list_string
- arcpy.CalculateField_management (fl, "r_address", '"{0}"'.format(r_add_list_string))
- if agent:
- arcpy.CalculateField_management (fl, "agent", '"{0}"'.format (agent))
- except:
- pass
- count += 1
- print ""
- print "Total matched: " + str(len(uniqueValues))
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement