Python netaddr命中空cs时抛出错误

2024-09-26 18:18:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个静态CSV文件,有以下标题

City    State   Zip Latitude    Longitude   Subnet  Wired1  Wired2  Wireless1   Wireless2   Domain  Name    NAT_DHCP    NAT_Wireless

当搜索IP时,我会在两个无线报头和有线报头之间查找。你知道吗

if (addr >= wired1 and addr <= wired2) or (addr >= wireless1 and addr <= wireless2):
print all header fields.

现在有些条目缺少无线范围和/或有线范围。我得到以下错误:

netaddr.core.AddrFormatError: failed to detect a valid IP address from ''

更具体地说,在无线报头上:

  File "script.py", line 175, in myfile
wireless1 = (int(IPAddress(row['Wireless1'])))

现在,我正在使用Dictreader,从文档来看,它不应该跳过空行吗?有没有其他方法可以用来跳过行?你知道吗

with open('csvfiles/myfile.csv', 'rb') as incsv:
    reader = csv.DictReader(incsv, delimiter=',')

如果好奇的话,下面是我的变量:

addr = (int(IPAddress(ip)))
wired1 = (int(IPAddress(row['Wired1'])))
wired2 = (int(IPAddress(row['Wired2'])))
wireless1 = (int(IPAddress(row['Wireless1'])))
wireless2 = (int(IPAddress(row['Wireless2'])))

csv行示例:

Wired1      Wired2          Wireless1     Wireless2
10.65.0.0   10.65.239.255   10.65.240.1   10.65.255.254
10.38.0.0   10.38.239.255       
10.34.0.0   10.34.239.255   10.34.240.1   10.34.255.254
10.83.0.0   10.83.239.255

Tags: csvipnatintrow无线addripaddress
1条回答
网友
1楼 · 发布于 2024-09-26 18:18:01

考虑使用^{},您可以更好地操纵csv文件。你知道吗

import pandas as pd

^{}

#See how does your data looks like in pandas
print df

      Wired1         Wired2    Wireless1      Wireless2
0  10.65.0.0  10.65.239.255  10.65.240.1  10.65.255.254
1  10.38.0.0  10.38.239.255          NaN            NaN
2  10.34.0.0  10.34.239.255  10.34.240.1  10.34.255.254
3  10.83.0.0  10.83.239.255          NaN            NaN

#Select only the rows where 'Wireless1' is not null
df[pd.notnull(df['Wireless1'])]
      Wired1         Wired2    Wireless1      Wireless2
 0  10.65.0.0  10.65.239.255  10.65.240.1  10.65.255.254
 2  10.34.0.0  10.34.239.255  10.34.240.1  10.34.255.254

#Select only 'Wireless' clolumn where it is not null
df[pd.notnull(df['Wireless1'])]['Wireless1']
0    10.65.240.1
2    10.34.240.1
Name: Wireless1, dtype: object

同样,你可以用熊猫做更多的操作。因此,可以避免将空值传递给netaddr。你知道吗

相关问题 更多 >

    热门问题