我们假设这是我的数据。
frame.number frame.len frame.cap_len Packets_Type
1 100 100 ICMP_tt
2 64 64 UDP
3 100 100 ICMP_tt
4 87 64 ICMP_nn
5 100 100 ICMP_tt
6 87 64 ICMP_nn
7 100 100 ICMP_tt
8 87 64 ICMP_nn
9 87 64 ICMP_nn
我将数据放入csv文件中,我想提取Packets_Type
等于ICMP_tt
import csv
f = open("file.csv", "rb")
reader = csv.DictReader(f, delimiter=',')
writer = open("newfile.csv",'wb')
writer = csv.writer(writer, delimiter=',')
for row in reader:
if row['Packets_Type'] == 'ICMP_tt':
writer.writerow(row)
通过执行这些代码行,我发现了这个错误:
writer.writerow(row)
_csv.Error: sequence expected
如果你能帮助我,我将非常感激。
答案 0 :(得分:0)
如果您愿意使用pandas
,可以通过以下方式轻松完成:
import pandas as pd
reader = pd.read_csv('file.csv')
writer = reader[reader['Packets_Type']=='ICMP_tt']
writer.to_csv('newfile.csv', index=False)
答案 1 :(得分:0)
此处的问题是您使用csv.writer
导入数据,同时使用csv.writer
导出数据。 list
期望可迭代(tuple
或csv.DictWriter
),但行值是字典。因此,保存数据的最佳方法是保持一致并使用import csv
with open("file.csv", "rb") as f:
reader = csv.DictReader(f, delimiter=',')
with open("newfile.csv", "wb") as f_out:
writer = csv.DictWriter(f_out, fieldnames=reader.fieldnames, delimiter=",")
writer.writeheader()
for row in reader:
if row['Packets_Type'] == 'ICMP_tt':
writer.writerow(row)
。以下应该有效:
public List<ReEstablecimientoDTO> consultarEstablecimientosRuesOSB(String numeroIdentificacion)
throws InvimaException {
logger.info("Inicia negocio: consultarEstablecimientosRuesOSB");
try {
// Lista de los establecimientos encontrados
List<ReEstablecimientoDTO> reEstablecimientoDTOList = new ArrayList<ReEstablecimientoDTO>();
// Clase encargada de llamar al servicio de rues ubicado en el bus
GestionEstablecimientosEntidad_Service service = new GestionEstablecimientosEntidad_Service();
// Instancia de la operación consultar establecimientos del servicio
// de rues OSB
GestionEstablecimientosEntidad port = service.getGestionEstablecimientosEntidadPort();
// Establecimientos DTO
ReEstablecimientoDTO reEstablecimientoDTO = new ReEstablecimientoDTO();
// Request necesario para hacer la búsqueda de establecimientos
BusquedaEstablecimientoEntrada part = new BusquedaEstablecimientoEntrada();
IdentificacionPersonal identificacion = new IdentificacionPersonal();
identificacion.setNumeroDocumento(numeroIdentificacion);
// Se guarda el número de idenfiticación a buscar
part.setParametrosBusqueda(identificacion);
// Se consultan los establecimientos
BusquedaEstablecimientoSalida resultadoEstablecimientos = port.consultarEstablecimientosARegistrar(part);
// Si encuentra establecimientos
if (resultadoEstablecimientos != null) {
logger.info("Encontré datos");
我希望这证明有用。
答案 2 :(得分:0)
import pandas as pd
reader = pd.read_csv('file.csv',sep=',')
writer = reader[reader['Packets_Type']=='ICMP_tt']
writer.to_csv('newfile.csv', index=False)import pandas as pd
添加sep =','应该可以解决错误