1

pystache を使用してファイルにデータを書き込もうとしています。データは、Google ドキュメントのスプレッドシートからエクスポートされた csv ファイルから取得されます。pystache テンプレートを使用してファイルを書き込むと、次のエラーが発生します。

UnicodeDecodeError: 'ascii' コーデックはバイトをデコードできません...

ここStackoverflowに関する他のいくつかの質問によると、使用する必要があります.decode('utf-8')が、それでも同じエラーが発生します。

datafile = "../data.csv"
renderer = pystache.Renderer()

f=open('sample.html','w')
templateHash={}
items = []

with open(datafile, 'rb') as csvfile:
    datareader = csv.reader(csvfile, delimiter=',')
    for row in datareader:
        item = {'name' : row[2].decode('utf-8')}
        items.append(item)

templateHash['lines'] = items
f.write(renderer.render_path('sample.mustache', templateHash))
f.close

完全なトレースバックは次のとおりです。

Traceback (most recent call last):
  File "parsetable.py", line 15, in <module>
    f.write(renderer.render_path('sample.mustache', templateHash))
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 750: ordinal     not in range(128)
[Finished in 0.3s with exit code 1]
4

1 に答える 1

1
f = codecs.open('sample.html', 'w', encoding='utf-8')

またはさらに良いことに、を使用しますwith

于 2013-01-27T00:05:30.997 に答える