csv ファイルを mysql にロードしようとしましたが、csv の最後のフィールドでデータが切り捨てられたという警告が引き続き表示されます。
データは Python で準備され、最後のフィールドの文字列の長さが 13 (CREATE TABLE で宣言されたフィールドの長さ) であることを確認します。
cleanField( row[ 17 ] )[0:12]
どの方法で測定しても、13 です。mysql 警告の行の 1 つであるlen(cleanField( row[ 17 ] )[0:12])
を使用して出力すると、まだ 13 文字の文字列が表示されます。$ cat customer.csv | awk -F"," '(NR==3621789){ print $17 }'
しかし、次のことを試してみると、隠れたキャラクターのヒントがあるようです。何かアドバイス?ありがとう。
$ cat customer.csv | awk -F"," '(NR==3621789){ print "<" $17 ">" }'
>PRSP_CATS_CO
ここにクリーンフィールドがあります:
def cleanField(x):
x = re.sub( ' +' , ' ' , x )
try:
x.decode('ascii')
except UnicodeDecodeError:
x = unicode( x , "UTF-8")
x = unicodedata.normalize('NFKD', x ).encode('ascii', 'ignore')
else:
pass
# " ".join(x.split())
return x.replace(',','').replace('"','').replace("'",'').replace('\t','').replace('\n','').replace('\\','').replace('\s','')