Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

etspaz

Identificar excesso de delimitador em texto

Recommended Posts

Bom dia!

Estou utilizando python para efetuar a carga de arquivos num banco. E estou com o seguinte problema.

O arquivo [e delimitado por ;.

Entao usei a funcao: dados = csv.reader(open('xxx.txt','r'),delimiter=';')

Mas ocorre que em alguns campos contem o caractere ; no texto... e o python separa o campo em duas colunas... ai bagunca td.

Ja me informaram que as areas que geram os dados nao alteram para incluir um qualificador de texto, que resolveria meu problema.

Alguem j[a teve problema parecido?

Consigo descobrir em qual linha tem mais delimitadores do que o normal, mas como tem mais de um campo que pode ter o caractere ; nao consigo definir qual caractere que devo eliminar.

Desde ja agradeco a atencao.

Att,

Ernesto Teodoro da SIlva

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você sabe que deve haver apenas 3 colunas você pode obter a linha (string) e usar o método count p/ verificar se é uma linha válida ou não.

a = 'coluna1;coluna2;coluna3'
b= 'texto1; texto muito grande com listagem; contendo separador; texto 3'
 
if b.count(';') != 2:
  raise Exception('Linha inválida')

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você sabe que deve haver apenas 3 colunas você pode obter a linha (string) e usar o método count p/ verificar se é uma linha válida ou não.

a = 'coluna1;coluna2;coluna3'
b= 'texto1; texto muito grande com listagem; contendo separador; texto 3'
 
if b.count(';') != 2:
  raise Exception('Linha inválida')

Boa tarde!

Obrigado pela dica.

Mas eu já contei, usando esse método. Me ajudou a marcar quais linhas contém erro.

O dificil agora é tentar corrigir via código.

Tenho que pensar numa lógica boa .....pq descobrindo qual linha tem o erro, tenho que descobrir qual delimitador na verdade está no texto.... mas tem mais de um campo que pode ter isso...

Acho que vou ter que gerar blocos difirentes para cada situação e testando ...

mas acho que isso pode deixar a rotina lenta né......

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por ILR master
      Fala galera.
      Espero que todos estejam bem.
      Seguinte: Tenho um arquivo xml onde alguns campos estão com : (dois pontos), como o exemplo abaixo:
       
      <item>
      <title>
      d sa dsad sad sadasdas
      </title>
      <link>
      dsadas dsa sad asd as dsada
      </link>
      <pubDate>sadasdasdsa as</pubDate>
      <dc:creator>
      d sad sad sa ad as das
      </dc:creator>
      </item>
       
      Meu código:
       
      $link = "noticias.xml"; 
      $xml = simplexml_load_file($link); 
      foreach($xml -> channel as $ite) {     
           $titulo = $ite -> item->title;
           $urltitulo = $ite -> item->link;
           print $urltitulo = $ite -> item->dc:creator;
      } //fim do foreach
      ?>
       
      Esse campo dc:creator eu não consigo ler. Como faço?
       
      Agradeço quem puder me ajudar.
       
      Abs
       
       
    • Por FabianoSouza
      Pessoal, preciso pegar um trecho dessa string:
       
      https://meudominio.com.br/app/rotaA/rotaB/xxx.jpg Dessa URL, preciso retirar
       
      /app/rotaA/rotaB/xxx.jpg  
      Como faço?
       
      Valew
    • Por Ane_
      Olá gente.
       
      Não consigo abrir o arquivo de desenvolvimento de um aplicativo,
      que foi feito pela themeforest(o template).
      Será que ele não é compatível com as IDE's que eu tô tentando abrir, já tentei no:
       
      Notepad++ Visual Studio (Com o ionic instalado) Android Studio  
      Esse é um dos erros que aparecem:
       
      "the archive not is displayed in the editor because it is either binary or uses unsupported text encoding"
       
    • Por vinihhylian0103
      É possível anexar um arquivo e enviá-lo por email via PHP? Se sim, alguém poderia me dar uma ajuda com isso por favor, é realmente muito importante para meu projeto do TCC.
    • Por Gustavo2503
      Eu preciso de um link para abrir um arquivo em decodificado em base64, eu fiz o link mas quando eu abro o link ele não aparece nada, o título da página fica "Sem título" e a página fica branca, vazia. E quando eu clico na URL e dou ENTER, ele aparece o meu arquivo normal. O link está assim:
      <a target="_blank" href="data:application/pdf;base64,MEU_ARQUIVO_BASE64">Arquivo</a> Como arrumar isso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.