如何解决python 2:将字符串变量转换为与 arcpy
在编码方面,我仍然很基础。我正在从事一个项目,该项目对我每天都有帮助,并将帮助我更好地学习 Python。我一直在寻找问题的解决方案,但还没有找到有效的解决方案。只是提前说明一下,我收到了有关使用 python 3 的反馈,但工作中带有 arcmap 的服务器使用 python 2,所以这就是我一直使用 2 的原因。我也在同时学习 3 :)
我正在使用 Arcmap 工具,该工具使用 sql 查询从将用于创建新要素类的 shapefile 中选择要素。我的问题是我无法将我的变量之一中的值转换为要在 sql 查询中使用的正确格式 --> ('value','value','value')。 我经常输入许多值,不想自己输入单引号和逗号,也没有地方可以复制和粘贴它们,所以我只想输入带有空格的值,然后让脚本完成剩下的工作。
我将 sql 代码分配到一个变量中,以便于输入到我的工具中。 sql 查询应如下所示(我输入了一些变量所在的值,以便您可以看到 arcmap 想要查看的内容。FOREST_FILE_ID 和 ROAD_SECTION_ID 是要查询的列名):
"FOREST_FILE_ID = 'RoadName' AND ROAD_SECTION_ID IN ('A','B'.'C','D')"
我尝试过 split() 和 join() 但没有任何效果完全符合要求。 这是我最近的代码尝试的 coles notes 版本以及最后的输出:
roadName = raw_input("Please enter the road name. >> ")
secNo = (raw_input("Please enter the road section(s) >> ").upper()).split(',')
roadQuery = "FOREST_FILE_ID = '{}' AND ROAD_SECTION_ID IN ({})".format(fileNo,secNo)
print(roadQuery)
我得到的输出是:
许可证号是多少? >> 道路名称
请输入路段>> a b c D
FOREST_FILE_ID = 'roadName' AND ROAD_SECTION_ID IN (['A B C D'])
如您所见,这不是所需的格式('A'、'B'、'C'、'D')。我不确定如何在我的变量中创建我需要的格式。任何帮助将不胜感激。
解决方法
我发现了一些似乎有效的东西。我不优雅,但我的 sql 有效。这样很好。
import os,re
from os import path
fileNo = raw_input("What is the permit number? >> ").upper()
secNo = (raw_input("Please enter the road section(s) >> ").upper())#.split(',')
secNo = re.sub(" ","','",secNo)
roadQuery = "FOREST_FILE_ID = '{}' AND ROAD_SECTION_ID IN ('{}')".format(fileNo,secNo)
print(roadQuery)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。