質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

3828閲覧

[python]writer.writerow で不要なカンマが出力される

Dadada_c.

総合スコア59

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2018/06/22 08:54

編集2018/06/24 22:27

#実現したいこと

python初心者です。。ご教示ください…。
スクレイプしてきた、URLデータをCSVに書き出そうとしたところ、
出力できたのですが、一文字ごとにカンマがはいってしまいます。

#コード

# coding: UTF-8 import urllib.request, urllib.error import csv html = urllib.request.urlopen('https://search.rakuten.co.jp/search/mall/inz/?p=2&sid=261213').read() from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'lxml') div = soup.findAll('div' , class_='image') for f in div: for link in f.findAll('a'): csvoutput = link.attrs['href'] with open('out.csv','a') as f: writer = csv.writer(f,lineterminator='\n') writer.writerow([csvoutput])

#補足情報
エクセルで開いた場合もA列に1行に出力したいです…。
よろしくお願い致します。

#追加画像
この様になります。。よろしくお願い致します。
イメージ説明

#修正後コード

coding: UTF-8

import urllib.request, urllib.error
import csv

html = urllib.request.urlopen('https://search.rakuten.co.jp/search/mall/inz/?p=2&sid=261213').read()

from bs4 import BeautifulSoup

soup = BeautifulSoup(html, 'lxml')

div = soup.findAll('div' , class_='image')

for f in div:
for link in f.findAll('a'):

csvoutput = link.attrs['href'] with open('out.csv','a') as f: writer = csv.writer(f,lineterminator='\n') writer.writerows([csvoutput])

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

LouiS0616

2018/06/22 09:00

再現できないです。ひょっとして、『writerows』を『writerow』と打っていませんか?
Dadada_c.

2018/06/22 22:22

間違えていました!ですが・・同じようになります。(画像を添付しました)よろしくお願い致します。
LouiS0616

2018/06/23 04:20

今貼ってあるコードをそのまま動かすと上手くいく筈なのですが。
can110

2018/06/23 15:01

ここに貼ったコードを別の.pyファイルに保存し実行してみてください。 元コード、writer.writerow(csvoutput)になっていませんか?
Dadada_c.

2018/06/24 22:28

ご回答ありがとうございます。修正して新しいファイルでおこなったのですが上記と同じような現象になります。。
guest

回答2

0

自己解決

結局…
writer.writerow([csvoutput])

で解決しました。お手数をおかけしました。

投稿2018/08/10 01:30

Dadada_c.

総合スコア59

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

out.csvは追記されてますよね。
もしかしたらout.csvを削除すると良いのではないでしょうか。

ちなみに自分の環境でご質問の修正前のコードを実行したところ
正常に動いているようでした。

bash

1# 動作環境 2$ python --version 3Python 3.5.2 4$ python -m pip list 5Package Version 6-------------- ------- 7beautifulsoup4 4.6.0 8lxml 4.2.3 9pip 10.0.1 10setuptools 39.2.0 11wheel 0.31.1

投稿2018/06/28 10:19

tatamyiwathy

総合スコア1039

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Dadada_c.

2018/06/29 07:41

ありがとうございます!すみません。out.csvを消すというのはどういうことでしょうか・・。 バージョンは揃えてみたのですが無理でした。。
tatamyiwathy

2018/06/29 08:01

HDDからout.csvファイルを削除するという意味です。 出力結果はout.csvファイルへ追記していますよね。 ということは、out.csvにはこれまでの試行錯誤の結果がすべて記録されているはずです。 だとしたら、ファイルの先頭あたりに意図しない出力が残っていて、 ひょっとしたらそれを見てうまくいかないと判断されているのかと思いましたので。
Dadada_c.

2018/06/29 08:21

だめですね。。。なぜ、皆さんのとこでできて僕の環境ではできないのか。。。 ご丁寧にありがとうございます。
tatamyiwathy

2018/06/29 14:37

こういうのは意外に自分の勝手な思い込みで目の前にある原因に気が付かなかったりするんですよね。 そういう時は頭を切り替えて別の方法で解決しちゃうのがいいかもしれません。 csvモジュールを使わずに普通にファイルに書きこみすれば手間はかかりますが問題は解決するのでは。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問