0

CSV ファイルの内容を読み取り、結合されたデータを含む出力 CSV ファイルを作成する目的で他のデータとマージするスクリプトがあります。私はCSVファイルを正常に作成しており、すべてのデータが出力ファイルになります。私の問題は、既に引用されている多くのフィールドを含むデータのセルに固有の書式設定にあります。私は CSV オプションをいじりましたが、すべてを一重引用符で囲んでいない構成 (Dokan へのインポートでは受け入れられますが、適切に処理されません) や、すべてを二重引用符で囲んでいない構成が見つかりません。 Dokanによるインポートメカニズム。

データ要素は次のようになります (きれいではありません)。この前後の区切られたフィールド - これは「dokan_profile_setting」と呼ばれる単一のフィールドです

'a:19:{s:10:"store_name";s:12:"vendor100";s:6:"social";a:8:{s:2:"fb";s:0:"";s:5:"gplus";s:0:"";s:7:"twitter";s:0:"";s:9:"pinterest";s:0:"";s:8:"linkedin";s:0:"";s:7:"youtube";s:0:"";s:9:"instagram";s:0:"";s:6:"flickr";s:0:"";}s:7:"payment";a:2:{s:6:"paypal";a:1:{i:0;s:5:"email";}s:4:"bank";a:0:{}}s:5:"phone";s:10:"1231231234";s:10:"show_email";s:2:"no";s:7:"address";a:6:{s:8:"street_1";s:21:"2160 South Lipan Street";s:8:"street_2";s:9:"";s:4:"city";s:6:"Denver";s:3:"zip";s:5:"80223";s:7:"country";s:2:"US";s:5:"state";s:2:"CO";}s:8:"location";s:0:"";s:6:"banner";i:0;s:4:"icon";i:0;s:8:"gravatar";i:0;s:14:"show_more_ptab";s:3:"yes";s:9:"store_ppp";i:10;s:10:"enable_tnc";s:3:"off";s:9:"store_tnc";s:0:"";s:23:"show_min_order_discount";s:2:"no";s:9:"store_seo";a:0:{}s:24:"dokan_store_time_enabled";s:3:"yes";s:23:"dokan_store_open_notice";s:0:"";s:24:"dokan_store_close_notice";s:0:"";}'

上記のように引用符がきれいで、二重になっていない場合 (以下を参照)、インポートと使用法は正常に機能しますが、CSV の作成でこれらの引用符をそのままにしておくことができないようですが、正当な引用が必要な行の他の人に影響を与えます。

これは、CSV filewriter による出力後の単一の行です - 二重引用符に注意してください

"100"|"vendor100"|"vendor100@demotech.com"|"Piper"|"Smith"|"vendor100"|"vendor100"|"This is the imported shop data for XYZ LLC"|""|"no"|"a:19:{s:10:""store_name"";s:12:""vendor100"";s:6:""social"";a:8:{s:2:""fb"";s:0:"""";s:5:""gplus"";s:0:"""";s:7:""twitter"";s:0:"""";s:9:""pinterest"";s:0:"""";s:8:""linkedin"";s:0:"""";s:7:""youtube"";s:0:"""";s:9:""instagram"";s:0:"""";s:6:""flickr"";s:0:"""";}s:7:""payment"";a:2:{s:6:""paypal"";a:1:{i:0;s:5:""email"";}s:4:""bank"";a:0:{}}s:5:""phone"";s:10:""1231231234"";s:10:""show_email"";s:2:""no"";s:7:""address"";a:6:{s:8:""street_1"";s:21:""2160 South Lipan Street"";s:8:""street_2"";s:9:"""";s:4:""city"";s:6:""Denver"";s:3:""zip"";s:5:""80223"";s:7:""country"";s:2:""US"";s:5:""state"";s:2:""CO"";}s:8:""location"";s:0:"""";s:6:""banner"";i:0;s:4:""icon"";i:0;s:8:""gravatar"";i:0;s:14:""show_more_ptab"";s:3:""yes"";s:9:""store_ppp"";i:10;s:10:""enable_tnc"";s:3:""off"";s:9:""store_tnc"";s:0:"""";s:23:""show_min_order_discount"";s:2:""no"";s:9:""store_seo"";a:0:{}s:24:""dokan_store_time_enabled"";s:3:""yes"";s:23:""dokan_store_open_notice"";s:0:"""";s:24:""dokan_store_close_notice"";s:0:"""";}"|"vendor100"|"no"|"Piper"|"Smith"|"XYZ LLC 100"|"2160 South Lipan Street"|""|"Denver"|"CO"|"80223"|"US"|"vendor100@demotech.com"|"(123) 123-1234"|""|"percentage"|"yes"|"39.6773216"|"-105.0014567"|"1"|"2160 South Lipan Street, Denver, CO, 80223, USA"|""|""|""|"yes"|"yes"|"CO"|"404-00411"|"vendor100"|"1231231234"|"a:6:{s:8:""street_1"";s:15:""2160 South Lipan Street"";s:8:""street_2"";s:0:"""";s:4:""city"";s:6:""Denver"";s:5:""state"";s:2:""CO"";s:3:""zip"";s:5:""80223"";s:14:""country_select"";s:2:""US"";}"|""|"seller"|"$P$B8l8bYi8oIwINynO/x3Lb/80vOUfGD."|"0"

これが私のcsvライターの現在の構成ですが、私は多くの差分構成を経験してきました。これは、上記の出力を生成した現在のものです。

with open(demo_co_vendors, 'w', newline='', encoding='utf-8') as csvfile:
    filewriter = csv.writer(csvfile, delimiter='|', quoting=csv.QUOTE_ALL, quotechar='"', doublequote="false", escapechar='\\')

アドバイスやヘルプをいただければ幸いです。

4

1 に答える 1