1. Zumba天国 / ながらcast
  2. ながらcast3/293 ダブルクォー..
2024-09-12 23:50

ながらcast3/293 ダブルクォーテーションの罠

spotify amazon_music

「桐」というデータベースソフトを使って、絞り込んだ後のデータからテキストファイルを書き出しています。その際、簡単なプログラムを書くのですが


印字 "Hello! World"


という書式で書くと、テキストファイルに


Hello! World


と書き込まれます。今回は、ダブルクォーテーション付きの


"@context": "products",


みたいな文字列を書き出したいので


印字 """"+"@context"+""": " 以下略


などと書きます。これがムズイんだよね〜


ちなみに「”」がスマートクォーテーション

「"」がストレートクォーテーションです。

00:00
はい、sasayukiです。ながらcastを始めます。
この番組では、自分大好き60歳の私、sasayukiの声のブログ、声の日記です。
通勤途中に歩きながら収録してますので、息がハァハァ上がったり、周りの雑音・騒音、風切音などが入ったりしますが、何卒ご容赦ください。
今日は少し雲がありますね。
台風の影響なんでしょうかね。結構遠いところ、沖縄からちょっと西の方、北西、北北西かな、行ってるんで、影響少ないかなぁとは思うんですが、
今日もちょっと暑いんだけど、雨もあるかもって感じの天気ですね。
いやー、今日はだいぶ涼しいですね、おかげで。 日が徹ってないっていうだけなんですけどね、ありがたいなぁと思います。
今朝、朝市に田中舞美さんが出てたんですよ。
虎に翼の新潟編で、イネさんっていう手伝いに来てくれた方がいたんですが、その方の役だったんですね。
田中舞美っていう名前って、聞いた瞬間、モンキー・D・ルフィの声優さんを思い出すわけですよ。
ただ、テレビに映っているその俳優さんは、結構なお年を召した女性なんで、
どうしても同一人物だと思えなくて、
ネットで調べたら、同一人物でした。 驚くね。
いやー、声だけは違う。 声の芝居っていうのが可能なんだなぁと思いましたが、
番組が進むにつれてですね、途中で、
新潟ランタロウの生アテデコみたいな、生吹き替えみたいなのをやってて、
今日、めでたい日本っていう日で、トリップちゃんっていう鳥が案内するんだけど、
その声をやってるのが、一等祭定優さんって方で、
その方が、新米なんだよね。
2人で掛け合いをしてました。
田中舞美さんがやってる役なんだっけ? ちゃんと見てないからわかんないんだけど、かっこいいやつね。
でもやっぱり声はやっぱり、全然違ってて面白かったですね。
03:00
声優って結構、息が長くできる仕事なんだなぁって、
ちょっと感心しました。 さて今日はですね、
いつもマニアックな話しかしないんですけど、
昨日、一昨日あたりから、悩んでて解決した問題で、
ダブルコーテーション。
プログラミングに近い部分の話なんですけど、それの話をちょっとしようかなと思います。
コーテーションって引用符っていう言葉で、いわゆるチョンチョンってやつですね。
英語で書いた時の言葉の部分、日本語で言うと鍵カッコで喋ったセリフを書くんですけども、
英語だとコーテーションっていうのでくくるらしいんですね。
さっき調べててわかったんですけど、コーテーションって2種類あって、
チョンが方向性があって、曲が玉みたいにクイッて曲がってるやつ。
あれをね、スマートコーテーションって専門用語では呼んでて、
開きと閉じがあるんですね。だから間違えると偉いことになっちゃう。
日本の鍵カッコも開きと閉じがあって、開きから始まって閉じで終わるっていうことになってるんですが、
このスマートコーテーションも同じで、これよく見るとわかるんですが、方向性があるんですね。そのヒゲの部分の。
それを間違えると偉いことになる。
もう一つが、真っ直ぐのコーテーション。ストレートコーテーションってその名の通りなんですけど、真下にピョンって伸びてるやつで、曲がってないタイプね。
これがストレートコーテーションって言って、主にプログラミングなんかでもよく使われている印象なんですけども、
今回はそれが問題になってます。
うちの職場で使っているデータベースのソフトがあって、今や知る人ぞ知る。
霧って霧ダンスの霧なんですけど、霧っていうデータベースをWindowsになる前のOSってなんだっけ?
MS-DOSの時代から実は使ってるんですね。
いまだにそれ使ってるんですが、それでいろんな、特に商品管理をしてるんですけども、
06:04
絞り込んだ商品に対してテキストファイルを書き出すみたいなことをやったりもしていますが、その中でこれ一括処理って呼んでるんですね。霧では。
その時に小さなプログラムみたいなものを書くんですよ。
で、いわゆるプリント文っていうのをやると、そのファイルにそのプリントした文章が書き出される。
でテキストファイルになるんですが、これは漢字で言うと印字って書いて、その後さっき言ったダブルコーテーション、ストレートのコーテーションですけど、それで囲むんですね。
例えば印字、スペース、ダブルコーテーション、ハロー、ダブルコーテーション、閉じるってやるとテキストファイルの方にハローっていう風に入る。
なんでこのダブルコーテーションに囲まれた中身が出力されるっていうことなんですね。
ここまではわかりやすいんですが、問題は出力文の中にダブルコーテーションを含めたいっていう場合が往々にしてあるんですね。
例えばなんだけど、HTMLの一部分を書き出そうっていう時に、例えばイメージタグなんて言うと、
括弧を開けて、img、スペース、src、ソースファイル、イコール、これダブルコーテーションの、例えばhttpから始まる、ほにゃらら、ほにゃららっていうのを書いたりして、ここでダブルコーテーションが出てくるとですね、この人は終わったって思っちゃうわけね。
当たり前だけど、最初のダブルコーテーションで始まって、次のダブルコーテーションで終わる気満々なので終わっちゃう。
それじゃ困るわけですね。そのダブルコーテーションは終わりという意味ではなくて、あくまでHTMLの中の引数というか、それを支持するために使ってるわけなんですね。
で、そういう場合はですね、どうするかっていうと、ダブルコーテーション二つ並べると、理解してくれるんですよ。
なので、さっきのsrcイコールダブルコーテーションで留めずに、ダブルコーテーションのダブルコーテーションでやると、これは書き出したい文字がダブルコーテーションなんだなと理解してくれるっていう仕組みなんですね。
09:00
おはようございます。それは一応わかっているという前提で、さらに今回は沼に入ったんですね。
はい、帰りです。 今回やろうとしたのは、Googleマーチャントセンターっていうね、Googleがやっているサービスで、特に商品をそこに登録しておくと、
Google検索した時、特に商品を検索した時に、普通に検索結果の画面が出るんですが、それとは別に扱っているお店が出てくるのってわかります?
パソコンの画面だと右側に商品がAmazonとか楽天とかっていう扱っているショップが出てくるんですけども、そこに出すための下準備というか、登録作業なんですね。
このマーチャントセンターに商品が登録されてアクティブであれば、その検索結果に出てくる可能性が出てくるってことなんですね。
もちろん広告スポンサーとして広告料を払えば、また別枠というか、その中でも優先して出てくるんだと思うんですけども、
一応、無料で広告を出してないとしても出てくる可能性があるんですね。
それを、いくつかの方法で登録するんですけども、今までは
HTMLファイル、商品紹介のページの一番後ろに、JSON形式っていう方式で商品データを書いておくと、
ホームページに表示はされないんですけども、情報をGoogleが読み取ってくれて登録してくれるっていう、結構ありがたい仕様なんですよね。
その一つのやり方ですけども。
なので僕もすごく簡単にですね、ホームページを作っているCMS、コンテンツマネジメントシステム。
うちはムーバブルタイプっていうのを使っているんですけど、そのテンプレートを作って、例えば商品名とか、商品コード、あるいは価格なんかをそこに書いておけばいいんですね。
12:02
そこそこ上手く回ってたんですが、8月に入ってから、それ以前から何度か警告はされてたんですけども、
最後通達みたいなのが来て、今のままだとそちらのサイトの商品、表示できなくなりますよっていう警告が来ました。
それは何かというと、そこの見えない場所、JSON形式で書いているところの在庫状況っていうのを、基本在庫ありっていうのでデータを作ってあるんですが、
実際のところは、品切れ中みたいな商品もまあまああるんですね。
そうすると、その両者の間に食い違いが生じていて、Googleはそれを嫌っているっていうことなんですね。
まあユーザー目線で言えば、Googleさんに送っているデータは在庫ありになっているので、検索結果に表示されるわけなんだけども、
それを見てクリックして、うちのサイトに来たら品切れだったっていうことが起こっちゃうわけですね。
それはよろしくないと。まあそりゃそうだよな。
ということで、そんなことをやっているともうオタクのサイトはもう表示しませんよっていう、
最後通告が来たんですね。
これは僕の責任なんですけどね。それができてないっていうのは。
なのでそれを何とかしようっていうところで、
今回、データベースからJSON形式のテキストファイルを書き出すっていうのをやって、沼にはまったっていう話なんですね。
さっき話したかもしれませんけど、
印字と書いて、ダブルコーテーションで囲まれたものがテキストファイルとして書き出されるわけなんですけども、
今回書き出さなきゃいけないテキストファイルって、そのダブルコーテーションが一行の中に4回出てくるんだよね。
ダブルコーテーションで始まって、アットマーク、例えばコンテクスト。ダブルコーテーションを閉じる。
コロン、スペース、またダブルコーテーションで、例えばプロダクトだったか、プロダクツだったか。
でまたダブルコーテーションで閉じてカンマ。これが一行なんですよ。
15:06
だからダブルコーテーションをちゃんと書いておかないといけないわけなんですが、これが結構沼で。
結局最後なんとかわかったんですけども、さっき言ったように、ダブルコーテーションを文字として書き込むには2つ繋げて書く必要なんですね。ダブルコーテーション、ダブルコーテーションと。
それをさらにダブルコーテーションで前後囲ってやるから、ダブルコーテーションが4つ連続するんだよね。
4つ続けて書いて初めてダブルコーテーション1行を印字することができるんですね。
なので、聞いてる人はわけわかんないかもしれないけど、ダブルコーテーション4……。あ、落ちましたよ。
4つ書いて、でアットマークコンテクストで書いた後、またダブルコーテーションを4つ書く。
と閉じます。
そんな感じでやっていきました。
非常にややこしい話で、かなり苦労している。
しかもその後、コロンを書いたりスペースを入れたりしていくので、そういったものをまたダブルコーテーションで囲んでいくわけなんだけど、その文字列同士を繋いでいくのはプラスっていう算術記号を使うんですね。
今、ダブルコーテーション4つ書いた後ろにプラススペースって入れてダブルコーテーションでまた閉じて、
プラスの後ろに1回ダブルコーテーションを入れてからのコロンスペースでまたダブルコーテーションで閉じるみたいな感じでやって、
再びまたダブルコーテーションなのでまた4つ書いて、みたいなダブルコーテーション地獄に陥ったと思ってくれればいいです。
そんな感じで、でもなんとかやり切ったんですよ。
あと、今のはもう変更のない文字列だったんですけど、実際はそのデータベースのあるフィールドを読んでこなきゃいけないので、
例えば商品名とかね、それはフィールド名を読んできてみたいなので、またちょっとそこは書き方が変わってみたいなので、沼っておりました。
ちなみにここで言っているダブルコーテーションはプログラムに近い状態で使われているので、
18:04
ストレート、ストレートコーテーションだっけ、
ヒゲが左右に曲がっていない方のダブルコーテーションです。
これのメリットって、開きと閉じの区別がないので、そこで間違える、ミスする可能性が、その可能性というかミスするリスクが避けられるということですね。
まあこれは本当にありがたいというか、そんな見ててもわかりにくいしね、もう老眼入っている目だと、
開きなのか閉じなのかなんてね。 だからそこはね、
そういうのがないストレートの方で ok なのは助かりましたけどね。
ちなみになんですけども、
このダブルコーテーションってなかなかややこしくて、
例えば、これ今やってる話なんですけど、これまでうまくいってた方の話で言うと、
ディスクリプションっていう項目があって、さっきの価格とか在庫状況とか商品名とかね、
そういう中に説明という意味の、持っているディスクリプションという項目もあって、
それの中身は、その商品の説明文の頭、
例えば100文字みたいな感じでぶった切ってですね、
それを機械的に貼り付けてあるんですね。 自動でやってるわけです。
ただその中の説明文の中にたまにダブルコーテーションが入っていることがあるんですよ。
ダブルコーテーションを時々使っちゃうんだよね。
そうするとさっきの問題が起きて、エラーが起こっちゃうんですよね。
そんなこともあって、
今、うちのホームページの説明文章の中には、ダブルコーテーションを使わないでくれっていう風にお願いしております。
まあ、基本、普通に鍵かっこでお願いしますという感じですかね。
なかなかダブルコーテーションを扱いづらい問題があって、
21:00
まあこれ、今みたいにテキストデータとして扱ったりする時に、
まあ悪さをするっていうこともありますし、
このデータをコピペして、何かの時に縦書きになっちゃう時があるんだよね。
なっちゃうっていうか、そこをコピって、
今度はDTP用の原稿に貼り付けたりする時に、
やっぱりこのダブルコーテーションって、縦書きだとまた変な形になるんですよ。
これを一回直さなきゃいけないんだよね。
その辺も予測できない動きをしちゃうので、
この辺りも厄介だなぁと思っております。
まあ、雰囲気があって好きなんですけども、
まあなるべく鍵かっこにしてもらってますね。今は。
はい、そんなわけで今日はダブルコーテーションの話をしてきました。
ちなみになんですけど、スマートコーテーションと呼ばれる、こうヒゲがひょいって曲がっているやつね。
どうもそっちの方が角上らしいです。
ストレートコーテーションの方が角下。
歴史も浅いっていうのもあるんでしょうけども、
なんか間抜けなコーテーションっていう別名もあるらしいんですけどね。
ただ、プログラミング界隈ではストレートコーテーションが愛用されているのは、
さっき言ったようにありがたいし、もう本当に嬉しいの一言につきますね。
ただ、何かと区切りの記号として使われがちなので、
今回は、生成するテキストファイルにダブルコーテーションが必要。
なのに、それを生成するプログラム側もダブルコーテーションを区切りにしているっていうね、
ややこしい状態になっていたのは沼の原因だったかなと思いますね。
はい、じゃあ今日はこのところで終わりにしようかなと思います。
最後までお付き合いいただきましてありがとうございました。
では、またね!
ちゅー!
23:50

コメント

スクロール