[過去ログ] Ruby 初心者スレッド Part 58 [無断転載禁止]©2ch.net (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
351(1): uy ◆e6.oHu1j.o [sage] 2016/06/17(金) 16:33:46.05 ID:GkjZw5OC(1/4) AAS
質問です
YAMLで読み書きをしてるコードをしばらく動かしていたら
c:/ruby/lib/ruby/2.3.0/psych.rb:377:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 2 column 1 (Psych::SyntaxError)
ロードエラーが出てきて、
ファイル開いてみると確かにデータのインデントが変な風に書き込まれていました(20回分くらいのデータは正常に書き込まれています
読み書きは
YAML.load_file( YAML_FILE )
と
YAML.dump( yaml , open( YAML_FILE , 'w') )
でやっています
間違ったデータを書き込んでる原因は模索中です
YAML.dumpで書き込んだデータが
YAML.load_fileで読めないケースってあるんですか?
書き込まれていたのはこんなデータです
2chスレ:tech
uy:
- '9999'
2chスレ:tech
uy:
- '9999'
- '2'
2chスレ:tech
uy:
- '9999'
- '9999' ← これが間違って書き込まれているデータ
352: uy ◆e6.oHu1j.o [] 2016/06/17(金) 16:36:29.12 ID:GkjZw5OC(2/4) AAS
>>351
インデントがおかしくなりました 修正
2chスレ:tech
uy:
- '9999'
- '2'
2chスレ:tech
uy:
- '9999'
- '9999'
355(1): uy ◆e6.oHu1j.o [] 2016/06/17(金) 18:48:19.99 ID:GkjZw5OC(3/4) AAS
>>353uy式会社uyの守秘義務があるので貼れません
>>354354(1): デフォルトの名無しさん [sage] 2016/06/17(金) 17:34:13.83 ID:8Hiy7fy+(1) AAS
>間違ったデータを書き込んでる
>YAML.dumpで書き込んだデータが
>YAML.load_fileで読めないケース
>← これが間違って書き込まれているデータ
自分で論理的に原因の切り分けも出来ないくせに原因特定するなんて馬鹿のすることです。
もう少しわかりやすくお願いします
自分が知りたいのは
YAML.dump( yaml , open( YAML_FILE , 'w') )
↑ の時
変数:yaml にどのような値を入れて .yamlファイルを作成した場合に
この c:/ruby/lib/ruby/2.3.0/psych.rb:377:in `parse': (<unknown>): did not find expected key while parsing a block mapping at line 2 column 1 (Psych::SyntaxError)
エラーが出現するかという事ですが
一般的な方法で再現する方法は存在しないという事で良いですか?
いま現在いくつかのエラーチェックを入れ再び同スクリプトを稼働し
原因特定のため全変数を.txtでdumpしながら走らせて3時間程になりますが
今のところエラーは出現していません
357: uy ◆e6.oHu1j.o [] 2016/06/17(金) 21:55:15.96 ID:GkjZw5OC(4/4) AAS
>>355
ほぼ同じ別のスクリプトで再発し今度はさらに状態の悪いデータになっていたので原因は確定しました
どうバグを回避し表面化させないかというフェイズに移行します
ありがとうございました
本番環境はruby1.9.3なので古いバグを踏んだものと思う事にします
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.045s