值错误:无法将字符串转换为float,NumPy
时间:2023-05-27 20:37:01
我有一个脚本,我在向前Esri文件geodatabase写入一个JSON web服务。我收到了错误的价值错误无法将字符串转换为浮点:微波
我以前用过同样的脚本,U40是所有字符串的数据类型。
我的脚本和结果如下import json
import jsonpickle
import requests
import arcpy
import numpy
fc = "C:\MYLATesting.gdb\MYLA311"
if arcpy.Exists(fc):
arcpy.Delete_management(fc)
f = open('C:\Users\Administrator\Desktop\myla311.json','r')
data = jsonpickle.encode( jsonpickle.decode(f.read()) )
url = "myUrl"
headers = {'Content-type': 'text/plain','Accept
r = requests.post(url,data=data,headers=headers)
sr = arcpy.SpatialReference(4326)
decoded = json.loads(r.text)
SRAddress = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]SRAddress']
latitude = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]Latitude']
longitude = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]Longitude']
CommodityType = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]ListOfLa311ElectronicWaste']['La311ElectronicWaste[0]Type']
ItemType = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]ListOfLa311ElectronicWaste']['La311ElectronicWaste[0]ElectronicWestType']
ItemCount = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]ListOfLa311ElectronicWaste']['La311ElectronicWaste[0]ItemCount']
CommodityType1 = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]ListOfLa311ElectronicWaste']['La311ElectronicWaste[1]Type']
ItemType1 = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]ListOfLa311ElectronicWaste']['La311ElectronicWaste'][1]['ElectronicWestType']
ItemCount1 = decoded['Response']['ListOfServiceRequest']['ServiceRequest[0]ListOfLa311ElectronicWaste']['La311ElectronicWaste[1]ItemCount']
print SRAddress
print latitude
print longitude
print CommodityType
print ItemType
print ItemCount
print CommodityType1
print ItemType1
print ItemCount1
item ={'SRAddress': SRAddress,'Longitude': longitude,'Latitude': latitude,'CommodityType': CommodityType,'ItemType': ItemType,'ItemCount': ItemCount}
import numpy as np #NOTE THIS
keys = ['SRAddress','Longitude','Latitude','CommodityType','ItemType','ItemCount']
k1,k2,k3,k4,k5,k6 = keys
data_line ={'SRAddress': SRAddress,'Longitude': longitude,'Latitude': latitude,'CommodityType': CommodityType,'ItemType': ItemType,'ItemCount': ItemCount}
frmt = '\nStraight dictionary output\n Address: {} Long: {} Lat: {}'
print(frmt.format(item[k1],item[k2],item[k3],item[k4],item[k5],item[k6]))
print '\noption 1: List comprehension with unicode'
a = tuple([unicode(item[key]) for key in keys]) # list comprehension with unicode
print('{}'.format(a))
dt = np.dtype([('SRAddress','U40'),('CommodityType','U40'),('ItemType','U40'),('ItemCount','U40'),('longitude','
arr = np.array(a,dtype=dt)
print'\narray unicode\n',arr
print'dtype',arr.dtype
print '\noption 2:List comprehension without unicode'
b = tuple([item[key] for key in keys])
print('{}'.format(b))
dt = np.dtype([('SRAddress','U40'),('CommodityType','U40'),('ItemType','U40'),('ItemCount','U40'),('longitude','
arr = np.array(b,dtype=dt)
print'\narray without unicode\n',arr
print'dtype',arr.dtype
arcpy.da.NumPyArrayToFeatureClass(arr,fc,['longitude','latitude'],sr)
结果
^{pr2}$