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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

解決済

2回答

1061閲覧

文字列からfloatに変換できない

ryosuke0313

総合スコア65

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2022/10/12 10:30

実現したいこと

このエラーを解決したいです。
また、エラーには関係ありませんが、実行するためにはstrpathを自分のpathに設定するとよいのでしょうか。

発生している問題・エラーメッセージ

--------------------------------------------------------------------------- ValueError Traceback (most recent call last) ~\AppData\Local\Temp/ipykernel_27848/76122251.py in <module> 53 dfsum.to_csv(strPath + '/out.csv') 54 if __name__ == '__main__': ---> 55 main() ~\AppData\Local\Temp/ipykernel_27848/76122251.py in main() 15 strPath = sys.argv[1] 16 if len(args)>2: ---> 17 fP = float(sys.argv[2]) 18 19 #フォルダ内のjsonファイルの一覧を作る ValueError: could not convert string to float: '--stdin=9023'

該当のソースコード

python

1import json 2import pandas as pd 3import numpy as np 4import glob 5import sys 6def main(): 7 fP = 0.5 #確度のデフォルト値 8 #起動引数の処理 9 args = sys.argv 10 print(args) 11 if len(args)<=1: 12 #引数がないので終了 13 sys.exit() 14 if len(args)>1: 15 strPath = sys.argv[1] 16 if len(args)>2: 17 fP = float(sys.argv[2]) 18 19 #フォルダ内のjsonファイルの一覧を作る 20 json_list = glob.glob(strPath + "/*.json") 21 ilenlist = len(json_list) 22 #各点の名前を指定 23 cols =['Nose_x','Nose_y','P0','Neck_x','Neck_y','P1','RShoulder_x','RShoulder_y', 24 'P2','RElbow_x','RElbow_y','P3','RWrist_x','RWrist_y','P4','LShoulder_x', 25 'LShoulder_y','P5','LElbow_x','LElbow_y','P6','LWrist_x','LWrist_y','P7', 26 'MidHip_x','MidHip_y','P8','RHip_x','RHip_y','P9','RKnee_x','RKnee_y', 27 'P10','RAnkle_x','RAnkle_y','P11','LHip_x','LHip_y','P12','LKnee_x', 28 'LKnee_y','P13','LAnkle_x','LAnkle_y','P14','REye_x','REye_y','P15', 29 'LEye_x','LEye_y','P16','REar_x','REar_y','P17','LEar_x','LEar_y','P18', 30 'LBigToe_x','LBigToe_y','P19','LSmallToe_x','LSmallToe_y','P20','LHeel_x', 31 'LHeel_y','P21','RBigToe_x','RBigToe_y','P22','RSmallToe_x','RSmallToe_y', 32 'P23','RHeel_x','RHeel_y','P24'] 33 dfsum = pd.DataFrame(index=[],columns=cols) 34 #jsonファイルを読み込んで結合する 35 for i,file in enumerate(json_list): 36 with open(file) as f: 37 data = json.load(f) 38 data = np.array(data['people'][0]['pose_keypoints_2d']).reshape(-1,75) 39 # 3成分(X,Y,P)×25マーカ 40 df = pd.DataFrame(data,columns=cols) 41 42 #「確度」の値によって、XYの値をNULLにする 43 for num in range(2, 75, 3): 44 if df.iat[0,num]<fP: 45 df.iat[0,num-1]=np.nan 46 df.iat[0,num-2]=np.nan 47 #結合 48 dfsum = dfsum.append(df, ignore_index=True) 49 #進捗バー 50 dPercent = (i+1)/ilenlist*100 51 print("\r{0}% [{1}]".format(int(dPercent), "#" * int(dPercent)), end="") 52 #出力する 53 dfsum.to_csv(strPath + '/out.csv') 54if __name__ == '__main__': 55 main()

補足情報(FW/ツールのバージョンなど)

通常のjsonファイル
イメージ説明
空のjsonファイル
イメージ説明

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

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

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

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

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

guest

回答2

0

ベストアンサー

エラーの原因は第二コマンドライン引数--stdin=9023float()に変換できないことに起因します.
第二コマンドライン引数は必ず文字を含まない整数値か浮動小数点数を書いてください.

実行するためにはstrpathを自分のpathに設定するとよいのでしょうか

コードを見る限り,JSONファイルがあるディレクトリを指すよう,あなたのpathを設定する必要があるようです.

実行コマンド例を示します.

shell

1python 76122251.py /your/json/file/directory 0.5

投稿2022/10/12 10:39

PondVillege

総合スコア1579

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

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

0

sys.argv[2] はコマンド引数の2番目ですけど、コマンド引数の2番目には --stdin=9023 が指定してあって float に変換できない、というエラーになってますよ。
コマンド引数には何を指定したのですか?

投稿2022/10/12 10:36

編集2022/10/12 10:37
shiracamus

総合スコア5406

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問