python - 修改python字典中的字符串
问题描述
我有一个设备 ID(作为键)和地址(作为值)的字典。
我想要做的是标记作为 IP 地址的地址,并修改字符串以在原始 IP 地址字符串中包含“:47808”。例如,像这样的 IP 地址'10.200.200.26'
修改为'10.200.200.26:47808'
像这样的这些类型的地址11:11
是可以单独放置的双绞线 rs-485 设备。
data = {
5242: '10.200.200.202',
5237: '10.200.200.191',
5233: '10.200.200.194',
5235: '10.200.200.193',
5241: '10.200.200.201',
5240: '10.200.200.200',
5239: '10.200.200.198',
5231: '10.200.200.196',
5232: '10.200.200.195',
5238: '10.200.200.190',
5236: '10.200.200.192',
5230: '10.200.200.197',
5234: '10.200.200.199',
10000: '10.200.200.26',
1100: '10.200.200.27',
1002: '10.200.200.32',
4: '11:4',
73005: '11:5',
6: '11:6',
7: '11:7',
8: '11:8',
22: '12:22',
9: '11:9',
23: '12:23',
10: '11:10',
24: '12:24',
11: '11:11',
25: '12:25',
12: '11:12',
12026: '12:26',
27: '12:27',
13: '11:13',
12028: '12:28',
14: '11:14',
29: '12:29',
30: '12:30',
15: '11:15',
31: '12:31',
16: '11:16',
12032: '12:32',
12033: '12:33',
73017: '11:17',
34: '12:34',
73018: '11:18',
12035: '12:35',
19: '11:19',
36: '12:36',
20: '11:20',
21: '11:21',
37: '11:37',
38: '11:38',
39: '11:39'
}
有人可以给我一个关于如何做到这一点的提示吗?我正在尝试将字符.find
标记:
为布尔检查,该检查只能在可以单独使用的地址类型中。
def isIPadress(stringVal):
return stringVal.find(':')
for device,address in data.items():
print(isIPadress(address))
非常感谢任何提示。
解决方案
像这样
的注意,IP 地址检查非常简单,但适用于该数据集。
data = {
5242: '10.200.200.202',
5237: '10.200.200.191',
5233: '10.200.200.194',
5235: '10.200.200.193',
5241: '10.200.200.201',
5240: '10.200.200.200',
5239: '10.200.200.198',
5231: '10.200.200.196',
5232: '10.200.200.195',
5238: '10.200.200.190',
5236: '10.200.200.192',
5230: '10.200.200.197',
5234: '10.200.200.199',
10000: '10.200.200.26',
1100: '10.200.200.27',
1002: '10.200.200.32',
4: '11:4',
73005: '11:5',
6: '11:6',
7: '11:7',
8: '11:8',
22: '12:22',
9: '11:9',
23: '12:23',
10: '11:10',
24: '12:24',
11: '11:11',
25: '12:25',
12: '11:12',
12026: '12:26',
27: '12:27',
13: '11:13',
12028: '12:28',
14: '11:14',
29: '12:29',
30: '12:30',
15: '11:15',
31: '12:31',
16: '11:16',
12032: '12:32',
12033: '12:33',
73017: '11:17',
34: '12:34',
73018: '11:18',
12035: '12:35',
19: '11:19',
36: '12:36',
20: '11:20',
21: '11:21',
37: '11:37',
38: '11:38',
39: '11:39'
}
with_port = {}
for k,v in data.items():
if v.count('.') == 3:
with_port[k] = f'{v}:47808'
else:
with_port[k] = v
for k,v in with_port.items():
print(f'{k} --> {v}')
输出
5242 --> 10.200.200.202:47808
5237 --> 10.200.200.191:47808
5233 --> 10.200.200.194:47808
5235 --> 10.200.200.193:47808
5241 --> 10.200.200.201:47808
5240 --> 10.200.200.200:47808
5239 --> 10.200.200.198:47808
5231 --> 10.200.200.196:47808
5232 --> 10.200.200.195:47808
5238 --> 10.200.200.190:47808
5236 --> 10.200.200.192:47808
5230 --> 10.200.200.197:47808
5234 --> 10.200.200.199:47808
10000 --> 10.200.200.26:47808
1100 --> 10.200.200.27:47808
1002 --> 10.200.200.32:47808
4 --> 11:4
73005 --> 11:5
6 --> 11:6
7 --> 11:7
8 --> 11:8
22 --> 12:22
9 --> 11:9
23 --> 12:23
10 --> 11:10
24 --> 12:24
11 --> 11:11
25 --> 12:25
12 --> 11:12
12026 --> 12:26
27 --> 12:27
13 --> 11:13
12028 --> 12:28
14 --> 11:14
29 --> 12:29
30 --> 12:30
15 --> 11:15
31 --> 12:31
16 --> 11:16
12032 --> 12:32
12033 --> 12:33
73017 --> 11:17
34 --> 12:34
73018 --> 11:18
12035 --> 12:35
19 --> 11:19
36 --> 12:36
20 --> 11:20
21 --> 11:21
37 --> 11:37
38 --> 11:38
39 --> 11:39
推荐阅读
- sql-server - 如何在 SQL 数据库项目中生成模式比较结果的脚本
- javascript - 在标签的每个父 div 中插入一个按钮
- c# - UWP 如何从我的 Web api 下载图像?
- python - Pandas - Resample/GroupBy DateTime Index 并执行计算
- android - 如何让 Android SafetyNetClient.Attest 使用仅限于 Android 应用程序的 API 密钥?
- database - 将文件关联到数据库的最佳方式
- database - 无法为 Visual Studio 2017 Professional 安装 SSDT
- matlab - 如何创建向量大小不等的曲面图
- css - CSS body:不显示后
- agile - 使用 SCRUM 进行网站维护 - 处理单个任务