首页 > 解决方案 > 修改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))

非常感谢任何提示。

标签: python

解决方案


像这样
的注意,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

推荐阅读