python2.xですね。
リストは[’あいう’, '129239',,.....] のようになっていると書かれていますが、その認識が少し間違っている可能性があります。
実際に、
x = [’あいう’, '129239'] というリストを作ってprintステートメントで出力してみると、
['\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86', '129239'] のようになり、uが付かない文字列型として認識されるはずです。
お気づきのとおり、クォーテーションの前にuが付いているのはUnicode型であるということです。Python(2.x系)におけるUnicode型というのは、「Shift_JIS」や「UTF-8」などのように単に文字コードの名称というわけではなく、あるオブジェクト型です。
Unicode型をそのままファイルに出力しようとすると、Pythonはasciiで文字列型に変換しようとするわけですが、そこに日本語が含まれているとUnicodeEncodeErrorが発生します。
そのため、Unicode型として保持されている日本語をファイルに出力するためには、文字コードを指定して文字列型に変換する必要があります。具体的にはencode()メソッドを使います。
いま問題となっているリストにはUnicode型以外の要素も含まれるようなので、例えば次のようなコードで処理できるのではないでしょうかか。
python
1>>> print currentlist
2[u'\u3042\u3044\u3046', '1292397', ...]
3
4>>> newlist = []
5>>> for x in currentlist:
6... if isinstance(x, unicode):
7... newlist.append(x.encode('utf-8'))
8... else:
9... newlist.append(x)
10...
11>>> print newlist
12['\xe3\x81\x82\xe3\x81\x84\xe3\x81\x86', '1292397', ...]
リスト内包表記で一行で書くと
python
1newlist = [x.encode('utf-8') if isinstance(x, unicode) else x in x for currentlist]
勝手に新しいリストを作る形にしてしまいましたが、もちろんファイルに書き込む段階でそれぞれencode()を使うなどの処理でもいいかと思います。
ついでに言えば、数値の部分も '129239' という文字列型ではなく数値型になっている可能性があるので、その場合、str()関数で型変換するなどしなければいけません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。