質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

1回答

2456閲覧

[python]URLのクエリを受け取りint型に変換する処理

4mmsod

総合スコア15

nginx

nginixは軽量で高性能なwebサーバーの1つです。BSD-likeライセンスのもとリリースされており、あわせてHTTPサーバ、リバースプロキシ、メールプロキシの機能も備えています。MacOSX、Windows、Linux、上で動作します。

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

MacOS(OSX)

MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2015/07/29 04:01

掲題の件です。
URLの末尾に

?area=100

などと入力してクエリを送信して、スクリプトの

import cgi
form=cgi.FieldStorage()
area_str=form.getvalue('area', '')

area_int=int(area_str)

という処理によって

print area_int #100

という結果が得たいのですが、

area_int=int(area_str)
ValueError: invalid literal for int() with base 10: ''

とエラーがでてしまいます。
area_strに数字が入ってないとみなされてるんだと思うのですが、なぜだかさっぱりわかりません。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

エラーの内容から、遡っていきましょう。

area_int=int(area_str)
ValueError: invalid literal for int() with base 10: ''

日本語にすると、「値のエラー:int()に10進数として使えない文字: " 」

そこで、area_strに代入しているプログラムの部分を見ると

Python

1area_str=form.getvalue('area', '')

となっていて、getvalueの第2引数(getvalueの第1引数で指定したキーが存在しない場合の返り値)として''が指定されています。

これらの事から推測すると、起きたのは

  1. URLの末尾(?より後の部分)に誤りがあって、areaというキーが無いようなURLになっている
  2. areaというキーが無いので、getvalueは''を返している
  3. int関数は、引数が''なので、10進数に変換することができず、エラーメッセージを出した

という事だと思います。

入力したURLが正しいか確認してみてください。

投稿2015/07/29 08:31

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問