スクレイピングしたものをcsvに書き出すと余計な " が属性につく。


やりたいこと。  
csvファイルをつくる  
コンテンツは、htmlタグ付きのままスクレイピングしたもの。  
しかし、余計なクォーテーションがついてしまう。

[![余計なquotation](https://i.stack.imgur.com/6W8QM.jpg)](https://i.stack.imgur.com/6W8QM.jpg)

原因はstr()をつかったことだとおもいます。なぜなら、prettify()ではこのようなことがおこらなかったからです。  
csvに書き出すためにどのような型に変換すればいいのでしょうか？

[code]

        for def_el in definition_list:
            def_list.append(str(def_el))
    
        sections_string = '<hr>'.join(def_list)
    
        return sections_string
    
[/code]

このCSVファイルは、あとでHTML形式で表示する単語帳練習アプリにインポートする予定なので、htmlタグが必要です。

これがソースコードです。

[code]

    read_input = input('Read Mode Enter file name e.g.) vocab.csv:')
    write_input = input('Write Mode Enter name e.g.) appended_vocab.csv:')
    with open(read_input, 'r', encoding='utf-8-sig') as csv_file,\
        open(write_input, 'w', encoding='utf-8', newline='') as new_file:
        csv_reader = csv.reader(csv_file)
        csv_writer = csv.writer(new_file)
    
        normal_word = 0
        for line in csv_reader:
            def_list = []
            if not normal_word:
                # scraping()は下の方にあります。
                definition = scraping(line[0].lstrip('\ufeff'))
                normal_word =+1
            else:
                definition = scraping(line[0])
    
            if not definition:
                print('no web for:' + line[0])
                csv_writer.writerow([line[0],''])
            else:
                csv_writer.writerow([line[0],definition])
    
[/code]

読み込んだcsvファイルの一列目が単語になっています。




一般的なCSVフォーマットでは、値に`"`が含まれる場合、出力されるCSVテキストは

[code]

    aa"b"cc -> "aa""b""cc"
    
[/code]

こうなります。なので正常に処理されているように見えます。

読み込み側のソフトで`"`が含まれるデータが想定されているのであれば、そのまま読み込めるはずです。




一般的なCSVフォーマットでは、値に`"`が含まれる場合、出力されるCSVテキストは

[code]

    aa"b"cc -> "aa""b""cc"
    
[/code]

こうなります。なので正常に処理されているように見えます。

読み込み側のソフトで`"`が含まれるデータが想定されているのであれば、そのまま読み込めるはずです。

