linqy的个人博客分享 http://blog.sciencenet.cn/u/linqy

博文

arcgis 属性字段计算器,python脚本,如果字段为空或者None,返回值为 字段为空

已有 354 次阅读 2025-4-23 14:59 |个人分类:Python|系统分类:科研笔记

在 ArcGIS 的字段计算器中,若需判断字段值是否为 ‌空(空字符串、空格)‌ 或 ‌None‌,并返回提示信息 "字段为空",可使用以下 ‌Python 脚本‌:

完整代码与使用步骤‌1. ‌字段计算器配置
  • 解析器‌:选择 ‌Python‌。

  • 代码块‌:输入以下函数:

    pythonCopy Codedef check_empty(value):    # 判断 None 或空字符串/纯空格     if value is None:        return "字段为空"     elif isinstance(value, str) and value.strip() == "":        return "字段为空"     else:        return value  # 非空时保留原值(或自定义内容)
  • 表达式‌:

    pythonCopy Codecheck_empty(!YourFieldName!)
2. ‌参数说明
  • value is None:检测数值、日期等非字符串字段的空值(NULL)。

  • value.strip() == "":检测字符串字段的空值(包括 "" 或 " ")。

  • return value:非空时返回原字段值,可替换为其他内容(如 "非空")。

效果示例
原始字段值计算结果
None字段为空
"" (空字符串)字段为空
" " (纯空格)字段为空
"北京"北京
123123
高级扩展:同时处理多个字段

若需检查多个字段是否为空,可使用以下代码:

pythonCopy Codedef check_multiple_fields(field1, field2):    # 检查字段1     if field1 is None or (isinstance(field1, str) and field1.strip() == ""):         result1 = "字段1为空"     else:         result1 = "字段1正常"          # 检查字段2     if field2 is None or (isinstance(field2, str) and field2.strip() == ""):         result2 = "字段2为空"     else:         result2 = "字段2正常"          return f"{result1}, {result2}"表达式:pythonCopy Codecheck_multiple_fields(!Field1!, !Field2!)‌注意事项
  1. 字段类型兼容性‌:

    • 字符串字段‌:需处理 None、"" 和空格。

    • 数值/日期字段‌:空值仅表现为 None。

  2. 性能优化‌:

    • 大数据量时避免复杂逻辑,优先使用简单条件。

  3. 空格处理‌:

    • 使用 .strip() 可过滤字符串首尾的空格,若需保留中间空格可移除该方法。



https://wap.sciencenet.cn/blog-3134052-1483106.html


下一篇:arcgis的工具箱,哪个工具可以按照属性查找
收藏 IP: 60.208.132.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2025-4-26 09:57

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部