问题描述
我需要在企业级地理数据库(oracle sde)中打印所有数据集名称,要素,类和字段。
我制作了一个有效的脚本,但是当遇到特定要素类即
时数据集Z18.PLANIMÉTRIE_VÉGÉTATION
中的CTSE_2DIV_Z18.VÉGÉTATION_NICOLET我收到此错误:
UnicodeEncodeError:'ascii'编解码器无法在位置15编码字符u'\ xc9':序数不在范围内(128)
因此,错误来自É字符。 如果有人可以提供一些建议,将不胜感激。 谢谢。
import csv,arcpy,os
from arcpy import env
import sys
path = r"ArcCatalog\Farnham.sde" #Z18
arcpy.env.workspace = path
datasetList = arcpy.ListDatasets("*","Feature")
for dataset in datasetList:
print 'Dataset :',dataset
fcList = arcpy.ListFeatureClasses("*","",dataset)
fcList.sort()
for fc in fcList:
fc_to_remove = [str(i).encode('ascii','ignore') for i in fcList]
print ' Ceci est un Feature class :',fc
not_null_fields = [field.name for field in arcpy.ListFields(fc) if field.isNullable != "False"]
fields_dict = {field: list(set([feature[not_null_fields.index(field)] for feature in arcpy.da.SearchCursor(fc,not_null_fields)])) for field in not_null_fields}
fields_to_remove_unicode = [k for k,v in fields_dict.iteritems() if v == [None]]
fields_to_remove = [str(i).encode('ascii','ignore') for i in fields_to_remove_unicode]
print 'Les attribus suivant seront effacer :',fields_to_remove
print "\n"
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)