0

CSV ファイルには約 100,000 のメール アドレスがあります。それぞれに会員IDが関連付けられています。

メールでメンバー ID を検索できる API 呼び出しがありますが、不適切な形式のメールで検索することはできません。これを解決するために、特定のエラーをスキップしようとしています: API は不適切な形式のメールを送信するとエラーを返す400ため、これが私のコードです:

url = HTTParty.get("#{base_uri}#{call}",
  :basic_auth => auth,
  :headers => {'Accept' => 'application/json' } )
if url.code == 400 
  puts "400"
  next
else
  .....

これはほとんどの場合機能します。特定の電子メールに到達するまで、リストを循環して正確に実行しているように見えますが、その時点で毎回失敗します。失敗している電子メールは、先頭の<記号でフォーマットされています。

<arq.l@us.army.mil

これに達すると、スクリプトは停止しませんputs "400"。API 呼び出しで失敗し、それ以降は何もしません。その理由がわかりません。

補足として、ここで StackOverflow のパラメーターの外側に電子メールを入力しようとすると、記号codeの後ろのすべてが自動的に非表示になります。<これは何か関係があるのでしょうか?<サインは自分の知らないものとしてコードで伝えられているように感じます。

Ruby 1.9.3 を使用しています。

4

2 に答える 2

1

コードの残りの部分はわかりませんが、メソッドにこれがある場合は、これを追加できます。

def do_work
  url = HTTParty.get("#{base_uri}#{call}",
    :basic_auth => auth,
    :headers => {'Accept' => 'application/json' } )
  if url.code == 400 
    puts "400"
    next
  else
    # more code...
rescue => e
  puts e
end

発生している可能性のある例外をキャッチします。エラーの説明が含まれている可能性があります。この<文字は HTML/XML タグの開き括弧であるため、その値を検査して失敗する可能性があります。

特定のコードのチャンクをbegin rescue endブロックでラップすることもできます。

begin
  # sketchy code here...
rescue => e
  puts e
end
于 2013-09-20T15:37:23.003 に答える