微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

python 2:将字符串变量转换为与 arcpy

如何解决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 举报,一经查实,本站将立刻删除。