2017-02-09 8 views
0

私はロードデータinfileを取りたいMySQLテーブルを持っています。JSON列にJSON文字列をロードする方法

カラムの1つは、json文字列全体をアップロードするJSONタイプです。問題は、私が手JSON文字列を、アップロードするのはとても難しいようだということです。

Invalid utf8 character string: '{' 

行私のCSVファイルから:

25621943694,john,johnny,ACTIVE,organization,1234,{\”name\”: \”cicd-prod\”},2016-10-22 16:57:36 

私のLOAD DATA文:

LOAD DATA LOCAL INFILE 'test123.csv' 
INTO TABLE projects 
FIELDS TERMINATED BY ',' (project_number,project_id,project_name,lifecycle_state,parent_type,parent_id,raw_project,create_time); 
+2

'' 'は通常の引用符ではないようです。 –

+3

JSONに中括弧を付けるべきではありません。それらはASCII二重引用符でなければなりません。 – Barmar

+0

実際のJSON文字列をMySQLの列として保存しようとしている場合は、可能であれば入力JSONを変更してフィールドを一重引用符で区切ることをお勧めします。そうすれば、JSONブロック全体をMySQL文字列として保存することができます。 「... 1234」、{'名前': 'cicd-prod'} '、2016-10-22 16:57:36' – jiveturkey

答えて

1

JSONでは、the ECMA standardによると、 "文字列は、Unicodeコードポイントのシーケンスで、引用符(U + 0022)で囲まれています。"

あなたのCSVはU+0022を使用していません。それはU+0201D - Right Double Quotation Markを使用しています。私はスマートな引用符の周りに十分なスマートな引用符を置くことができないので、それを正しく使用していません。それは右と左の両方のための右の引用符を使用しています。

これらの見積もりは、退屈な古いU + 0022 - 見積もり記号に変換する必要があります。 CSVを作成した人とチャットをする必要があります。それは、誇大なOfficeアプリがそれを混乱させる可能性もあります。

関連する問題