2

私はプログラミングもこのサイトも初めてなので、私が言ったり尋ねたりするかもしれないばかげた、または「初心者」については、事前にお詫び申し上げます。

現在、アイテムのリストを取得してcsvファイルに書き込むスクリプトをPythonで作成しようとしています。リスト内の各項目は、意味がある場合、実際には 2 つの文字列のリストです。本質的に、フォーマットは [[Google, http://google.com], [BBC, http://bbc.co.uk]] ですが、もちろん異なる値です。

CSV 内で、これを各リストの最初の列の最初の項目として表示し、2 番目の列の各リストの 2 番目の項目として表示したいと考えています。

これは、助けが必要なコードの一部です。

with open('integration.csv', 'wb') as f:
    writer = csv.writer(f, delimiter=',', dialect='excel')
    writer.writerows(w for w in foundInstances)

何らかの理由で、区切り文字が無視されているようです。Excel でファイルを開くと、各セルに 1 つのリストがあります。古い例を使用すると、各セルには「Google, http://google.com」が含まれます。Google を最初の列に、http://google.comを 2 列目にします。つまり、基本的には「Google」と「http://google.com」、その下に「BBC」と「http://bbc.co.uk」です。これは可能ですか?

私のコード内で、foundInstances はすべてのアイテムが含まれるリストです。全体として、スクリプトは正常に動作しますが、この最後のステップを取得できないようです。私は、stackoverflow やその他のインターネット内で多くのことを調べましたが、この最後のステップで役立つものは何も見つかりませんでした。

どんなアドバイスでも大歓迎です。さらに情報が必要な場合は、喜んで提供させていただきます。

ありがとう!

4

2 に答える 2

1

ペーストビンのコードでは、問題は次のとおりです。

foundInstances.append(['http://' + str(num) + 'endofsite' + ', ' + desc])

ここでは、データの各行に対して、既にコンマが含まれている文字列を 1 つ作成します。csvそれはモジュールに必要なものではありません。CSV モジュール、データからカンマ区切りの文字列を作成します。アイテムの単純なリストとしてデータを渡す必要があります[col1, col2, col3]。あなたがしているのは["col1, col2, col3"]、すでにデータを文字列にパックしている です。これを試して:

foundInstances.append(['http://' + str(num) + 'endofsite', desc])
于 2012-12-14T20:36:02.150 に答える
0

投稿したコードをテストしました

foundInstances = [[1,2],[3,4]]

そしてそれはうまくいきました。それは間違いなく出力csvを次の形式で生成します

1,2
3,4

したがってfoundInstances、形式が間違っていると思います。複雑な方法で変数を構築する場合は、追加しようとすることができます

import pdb; pdb.set_trace()

csvコードで実際に変数を使用する前。これにより、Python デバッガーを使用して実行時に変数を調べることができます。使用方法の詳細については、Python Debugger Referenceを参照してください。

ちなみに、PEP-8 Style Guideによると、変数の名前はfound_instancesPython である必要があります。

于 2012-12-14T20:19:53.173 に答える