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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

2790閲覧

Python CGIのメニューでの入力が「値なし」になってしまう

KazuHo1402

総合スコア7

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2016/08/17 17:15

pythonCGIで以下のものを動かしたときに、
メニューから選択させて、busyoに値を返したものを、CSVファイルに出力したいのですが、busyoの値がなしになって"0"が返ってしまいます。

理由を教えてほしいです。

ラジオボタンで選択させた値はしっかりと返されます。

python

1import sys, codecs 2from datetime import datetime 3import csv 4import cgi 5import cgitb 6cgitb.enable() 7 8 9html=""" 10<html> 11 <head> 12 <meta "Content-type: text/html; charset=utf-8"> 13 <title> 職場調査アンケート </title> 14 </head> 15 <body> 16 17 <h1>職場調査アンケート</h1> 18 19 <form method ="POST" action="/cgi-bin/aaa.py"> 20 <p>所属部署 21 <select name="所属部署"> 22 <option value="blank"></option> 23 <option value="管理本部">管理本部</option> 24 <option value="生産工事本部">生産工事本部</option> 25 <option value="技術開発本部">技術開発本部</option> 26 <option value="新潟事業本部">新潟事業本部</option> 27 </select> 28 </p> 29 30 <p>&nbsp;</p> 31 32 <p><font size="4"><strong>◆以下の質問に答えてください。</strong></font></p> 33 <p>1.あなたは今の職場に満足している。<br> 34 <input type="radio" name="q1" value=1>まったくそう思わない 35 <input type="radio" name="q1" value=2>あまりそう思わない 36 <input type="radio" name="q1" value=3>普通 37 <input type="radio" name="q1" value=4>まぁそう思う 38 <input type="radio" name="q1" value=5>とてもそう思う 39 </p> 40 41 <input type="submit" name="submit" value="送信" /> 42 </form> 43""" 44 45print(html) 46 47form = cgi.FieldStorage() 48busyo = form.getfirst('所属部署','0') 49radio = form.getvalue('q1','') 50today = datetime.now().strftime("%Y/%m/%d %H:%M:%S") 51 52#CSVファイルに書き出す 53csvfile_1 = open("date.csv", "w", encoding="utf-8") 54writer = csv.writer(csvfile_1) 55writer.writerow([today,busyo,radio]) 56csvfile_1.close() 57 58 59print(""" </body> 60</html> 61""") 62

よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

selectのname属性にマルチバイトを使っているからだと思います。
name属性を半角英数にし、それでもだめならまずはvalueも半角英数にしてみてください。

少なくともvalueに関しては全角でも取得できる様になるとは思いますが、
エンコードのミスマッチが起きている可能性もありますので、まずは値が取れることを確認した方が良いでしょう。
あとは環境の情報がないのでなんとも言えません。

投稿2016/08/18 00:39

flied_onion

総合スコア2604

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

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

KazuHo1402

2016/08/18 13:43

name属性を半角英数にしたら値を取得できました!ありがとうございます! ただ、エンコードの関係で文字化けしてしまうので、それに関してはもう少し勉強してみます...。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問