私はstackoverflowとpython\djangoを初めて使用します。私はすでに問題を解決しましたが、次回はもっと早く解決する方法について助けが得られることを望んでいました。
テーブルレコードをあるデータベースから別のデータベース(SQLサーバーからSQLlite)にコピーする非常に単純なPython関数があります。テーブルには数百の列があります。モデルオブジェクトをsqlliteに保存すると、djangoは次の例外をスローします。
'utf8'コーデックはバイトをデコードできません..。
いずれかの列のデータがutf8変換に問題があることを理解しています。私が知りたかったのは、これがどの列かということです。さまざまなアプローチを試しましたが、最終的には、不良列を見つけるために次のコードを作成する必要がありました。
build = Builds.objects.using('realdb').get(buildid=12524)
n = Builds()
for field in Builds._meta.fields:
val = getattr(build, field.name);
try:
setattr(n, field.name, val)
n.save(using="default")
except:
return HttpResponse(field.name + ": " + val.__str__())
基本的に、列の値を1つずつ新しいモデルオブジェクトにコピーし、エラーが発生すると停止します。次回これを行うためのより良い方法はありますか?PyCharmで例外を解除しようとしましたが、djangoフレームワーク自体でスローされた多くの例外をすべて解除します。
アロン。