[解決済み】pythonのエラー。TypeError: 整数が必要です。
2022-02-14 05:51:03
質問
Pythonスクリプトで、配列に要素のリストを格納する作業をしています。
各要素をそれぞれ
getControl
を使用して、幅のサイズを変更できるようにしました。配列から要素のリストを取得することは問題なくできます。
これを試すと
programs_width = list()
for pos_X, prog_width, prog_ids in zip(program_X, program_width, program_id):
if pos_X == '1073':
#30 mins
if prog_width == '342':
programs_width = 181
#1 hour
if prog_width == '691':
programs_width = 181
#need to find out how to get the programs_width outside
print programs_width
print prog_ids
self.getControl(prog_ids).setWidth(programs_width)
エラーになります。
01:03:24 T:2084 ERROR: Exception in thread All_Channels_BACKUP_thread:
Traceback (most recent call last):
File "C:\Program Files (x86)\XBMC\system\python\Lib\threading.py", line 532, in __bootstrap_inner
self.run()
File "C:\Users\user\AppData\Roaming\XBMC\addons\script.tvguide\test.py", line 8158, in run
self.xtarget()
File "C:\Users\user\AppData\Roaming\XBMC\addons\script.tvguide\test.py", line 1410, in All_Channels_BACKUP self.getControl(str(prog_ids)).setWidth(str(programs_width))
TypeError: an integer is required
この行でエラーが飛びます。
self.getControl(prog_ids).setWidth(programs_width)
以下は、幅とidの出力です。
01:13:18 T:5032 NOTICE: 181
01:13:18 T:5032 NOTICE: 3072
01:13:18 T:5032 NOTICE: 181
01:13:18 T:5032 NOTICE: 3211
01:13:18 T:5032 NOTICE: 181
01:13:18 T:5032 NOTICE: 3279
01:13:18 T:5032 NOTICE: 181
01:13:18 T:5032 NOTICE: 3348
01:13:18 T:5032 NOTICE: 181
01:13:18 T:5032 NOTICE: 3417
なぜエラーになるのか、さっぱりわかりません。
prog_ids
を使用して配列から各要素を取得し、各IDを
getcontrol
を使う前に、変数
programs_width
を使用して、毎回幅のサイズを変更しています。
の型は
program_width
は
int
で、その型は
prog_id
は
str
という文字列があります。
なぜエラーが発生したのか、どうすれば直せるのかわかりますか?
編集:問題はこの行に起因していることに気づきました。
elif pos_X == '1073':
以下は要素の一覧です。
15:34:08 T:5872 NOTICE: 375
15:34:08 T:5872 NOTICE: 724
15:34:08 T:5872 NOTICE: 2804
15:34:08 T:5872 NOTICE: 5226
15:34:08 T:5872 NOTICE: 5924
15:34:08 T:5872 NOTICE: 6273
15:34:08 T:5872 NOTICE: 6622
15:34:08 T:5872 NOTICE: 6971
15:34:08 T:5872 NOTICE: 7320
15:34:08 T:5872 NOTICE: 7669
15:34:08 T:5872 NOTICE: 8018
15:34:08 T:5872 NOTICE: 8716
15:34:08 T:5872 NOTICE: 9065
15:34:08 T:5872 NOTICE: 9414
15:34:08 T:5872 NOTICE: 9763
15:34:08 T:5872 NOTICE: 10112
15:34:08 T:5872 NOTICE: 10461
15:34:08 T:5872 NOTICE: 10810
15:34:08 T:5872 NOTICE: 11159
15:34:08 T:5872 NOTICE: 11508
15:34:08 T:5872 NOTICE: 11857
15:34:08 T:5872 NOTICE: 12206
15:34:08 T:5872 NOTICE: 13937
15:34:08 T:5872 NOTICE: 14635
15:34:08 T:5872 NOTICE: 14984
15:34:08 T:5872 NOTICE: 15333
15:34:08 T:5872 NOTICE: 15682
15:34:08 T:5872 NOTICE: 16031
15:34:08 T:5872 NOTICE: 16380
15:34:08 T:5872 NOTICE: 16729
15:34:08 T:5872 NOTICE: 17078
15:34:08 T:5872 NOTICE: 17427
15:34:08 T:5872 NOTICE: 17776
15:34:08 T:5872 NOTICE: 18125
15:34:08 T:5872 NOTICE: 18474
15:34:08 T:5872 NOTICE: 18823
15:34:08 T:5872 NOTICE: 19172
15:34:08 T:5872 NOTICE: 19521
15:34:08 T:5872 NOTICE: 19870
15:34:08 T:5872 NOTICE: 20219
15:34:08 T:5872 NOTICE: 20568
15:34:08 T:5872 NOTICE: 20917
15:34:08 T:5872 NOTICE: 22648
15:34:08 T:5872 NOTICE: 23346
15:34:08 T:5872 NOTICE: 23695
15:34:08 T:5872 NOTICE: 24044
15:34:08 T:5872 NOTICE: 24393
15:34:08 T:5872 NOTICE: 24742
15:34:08 T:5872 NOTICE: 25091
15:34:08 T:5872 NOTICE: 25440
15:34:08 T:5872 NOTICE: 26138
15:34:08 T:5872 NOTICE: 26487
15:34:08 T:5872 NOTICE: 26836
15:34:08 T:5872 NOTICE: 27185
15:34:08 T:5872 NOTICE: 27534
15:34:08 T:5872 NOTICE: 27883
15:34:08 T:5872 NOTICE: 28232
15:34:08 T:5872 NOTICE: 28581
15:34:08 T:5872 NOTICE: 28930
15:34:08 T:5872 NOTICE: 29279
15:34:08 T:5872 NOTICE: 29628
15:34:08 T:5872 NOTICE: 31359
15:34:08 T:5872 NOTICE: 32057
15:34:08 T:5872 NOTICE: 32406
15:34:08 T:5872 NOTICE: 32755
15:34:08 T:5872 NOTICE: 33104
15:34:08 T:5872 NOTICE: 33453
15:34:08 T:5872 NOTICE: 33802
15:34:08 T:5872 NOTICE: 34151
15:34:08 T:5872 NOTICE: 375
15:34:08 T:5872 NOTICE: 1073
15:34:08 T:5872 NOTICE: 3153
解決方法は?
問題は
programs_width
はリストです。
programs_width = list()
これらのいずれでもない場合
if
ステートメント
if prog_width == '342':
programs_width = 181
#1 hour
if prog_width == '691':
programs_width = 181
をトリガーにすると
programs_width
はここではまだリストになります。
self.getControl(prog_ids).setWidth(programs_width)
というエラーが発生します。
関連
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
[解決済み】IndexError: invalid index to scalar variableを修正する方法
-
[解決済み] プログラムの実行やシステムコマンドの呼び出しはどのように行うのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] Pythonで現在時刻を取得する方法
-
[解決済み] Pythonで2つのリストを連結する方法は?
-
[解決済み] Pythonで例外を手動で発生(スロー)させる
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] Pythonで整数から文字列に変換する
-
[解決済み】Pythonに三項条件演算子はありますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
Pythonコードの可読性を向上させるツール「pycodestyle」の使い方を詳しく解説します
-
任意波形を生成してtxtで保存するためのPython実装
-
[解決済み】TypeErrorの修正方法。Unicodeオブジェクトは、ハッシュ化する前にエンコードする必要がある?
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】Flask ImportError: Flask という名前のモジュールがない
-
[解決済み】cアンダースコア式`c_`は、具体的に何をするのですか?
-
[解決済み】django インポートエラー - core.managementという名前のモジュールがない