Python djangoプログラミングエラーのコツ、自作プログラミングで遭遇したエラーのまとめ 2018年11月8日更新
私もPythonやdjangoは初心者なので、知らない、見たことのないエラーばかりに遭遇する毎日と言えます。以前は、私が遭遇したすべての問題を収集・整理して、皆さんと共有することはありませんでした。でも、これからは、私が勉強してきた中で遭遇した問題を、皆さんの参考になるように共有できればと思います。もしかしたら、いくつかは正しいかもしれないし、間違っているかもしれない。コメントや意見交換を歓迎します。この記事は、私は応援と一緒に、次々と更新し、完成度を高めていきます〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜。
1.AttributeError("'str' オブジェクトには 'read' という属性がありません ")
このプロンプトが表示されたら、json.load()をjson.load()に置き換えてみてください。
2.TypeError: 'username' はこの関数の無効なキーワード引数です。
データモデルファイル、データ読み込みなどで、ユーザー名が間違って書かれていないか確認してください。
3. AttributeError: 'float' オブジェクトには 'split' 属性がありません。
この場合、いくつかのセルが条件不足で空になっていないか確認します。
4.ValueError。ハンドラ 'scprits_handler' を設定できません。
scprits_handler'のスペルが間違っている箇所をすべて確認してください。あるいは、'scprits_handler' が正常に定義されていないことを確認してください。時には ", (comma)" が欠けていて、システムのスペルエラーによって検出されていないことがあります。
5. pip install インストールのプロンプトが表示されました。不明またはサポートされていないコマンド 'install'。
まずpipというコマンドを使って、pipのインストールディレクトリを探し、そのディレクトリにcdして、pip installを実行してインストールします。
6.UnboundLocalError: 代入前にローカル変数 'key_value' が参照されました。
key_valueが定義されていなかったので、定義されている関数にkey_value=''というフレーズを追加したら動きました
7.NameError:名前 'false' が未定義です。
PythonのFalseは大文字でなければならないので、falseをFalseに変更するだけでよい。
8: TypeError: 'a' is an invalid keyword argument for print()
print(a)でaが誤って書かれていないか確認する。
9:print(test(x,y)) は None を出力する。
def test(x, y):
print('x+y=', x+y)
# return a*b
# if __name__ == '__main__':
# test(1, 3)
#
# add(5, 45)
print(test(11, 12))
出力結果です。
これは、定義された関数 test(x,y) の中に return 文がないためです。そのため、print(test(11,12))文の中で test(11,12) を実行すると、まず test を呼び出して参照 (11,12) を渡し、 test の中で print('x+y=', 11+12) を実行して x+y=23 と出力し、続けて print(test()) を実行していますが、 testメソッドは戻値がなく定義されているのでデフォルトは None、そしてまた None と出力しているためです。
10:AttributeError: 'dict' オブジェクトには 'encode' という属性がありません。
この理由は、辞書はencodeメソッドを使って文字列をエンコードすることができないからです。例えば、str1 = 'Hello world Hello' は str1.encode() でエンコードできますが、dict1 = {'n2':840,'la':39.98049465154441,'l':False} は dict1.encode でエンコードすることができないのです。
11.configparser.DuplicateSectionError: セクション 'type' はすでに存在します
設定ファイルを読み書きするとき、書き込み操作は書き込まれたパラメータがすでに設定ファイルに存在しているかどうかをチェックする必要があります。
12. ファイル書き込みを実行すると、ソースファイルの内容がクリアされることがわかった
元々私のコードロジックは、設定ファイルを読み込み、設定ファイルに「type」グループが存在するかどうかを判断し、存在しない場合はグループタイプを追加し、名前(suno)と値(10211201)を設定する、というものでした。
import configparser
# Instantiate the configParser object
config = configparser.ConfigParser()
# -read read the ini file
config.read('C:\\Users\\\songlihui\\\PycharmProjects\\\AutoTest_02\\\config\\\config.ini', encoding='GB18030')
list = []
list = config.sections()# Get all group names in the config file
if 'type' not in list:# if group type does not exist then insert type group
add1 = config.add_section('type')
add2 = config.set('type', 'suno', '10211201')# set value for type grouping
o = open('C:\\Users\\\songlihui\\\\PycharmProjects\\\AutoTest_02\\\config\\\config.ini', 'w')
config.write(o)
o.close()
しかし、read phraseをブロックアウトすると、新しく挿入されたデータを除いて、設定ファイルが削除されてしまうことに気づきました。
理由をまとめると、ファイルに対して読み込み操作を行うと、元のファイルの内容がキャッシュに読み込まれ、その後、そのファイルに対して「w」の書き込み操作を行うと、キャッシュにあるファイルを開いたときの古いデータと、新たに追加した新しいデータが再び書き込まれるので、内容が削除されることはなく、追記と加算のように見えるからです。しかし、ファイルに対して読み取り操作を行わないと、このときキャッシュにあるのは新しく追加された内容だけで、その後'w'に対して書き込み操作を行うと、実際には追記ではなく上書きを行っていることになるのです。実行後に再び設定ファイルを開くと、古いデータはクリアされ、今回の追加による新しいデータだけが残っていることがわかります。
13.Python は flask フレームワークを使用して json フォーマットのデータをフロントエンドに返すと、中国語を混乱させます。
私のインターフェースコードは以下の通りです。
import flask
from flask import request, jsonify
'''
flask: web framework, 通过flask提供的装饰器@server.route() converts ordinary functions to services
login interface, need to pass url, username, passwd
'''
# Create a service, treat this current python file as a service
server = flask.Flask(__name__)
# server.config['JSON_AS_ASCII'] = False
# @server.route() can transform ordinary functions into services Path to login interface, request method
@server.route('/login', methods=['get'])
def login():
# Get the data passed through the url request
username = request.values.get('name')
# Get the password passed by url request, in plaintext
pwd = request.values.get('pwd')
# determine if username and password are not empty, if not username and password then username and pwd are None
if username and pwd:
if username=='songlihui' and pwd=='111':
resu = {'code': 200, 'message': 'Login successful'}
return jsonify(resu) # convert dictionary to json string, json is a string
else:
resu = {'code': -1, 'message': 'Account password error'}
return jsonify(resu)
else:
res = {'code': 10001, 'message': 'Parameter cannot be empty!}
return jsonify(res)
if __name__ == '__main__':
server.run(debug=True, port=8888, host='0.0.0.0')# Specify port, host,0.0.0.0 means that no matter how many NICs, any ip can access
リクエストの後に返される結果。
コードの修正:先頭にimport jsonを追加し、中段のreturn jsonify(resu)の後にreturn json.dumps(resu, ensure_ascii=False)に変更します。
14.Pythonのエラーです。TypeError: 'NoneType' オブジェクトは呼び出し可能なソリューションではありません。
メソッドが呼び出されたら、()を削除してください。
関連
-
チェックされていないruntime.lastError: 接続を確立できませんでした。受信側が存在しません。
-
解決済みお客様のCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
Pythonコードのデバッグ問題:IOError: イメージファイルを識別できない
-
Python3.3継続行のアンダーインデントで、.の後に複数のスペースを入れて視覚的にインデントしています。
-
pip Fatal error in launcher: を使用してプロセスを作成できません。
-
from scipy.interpolate import spline errorImportError: cannot import name 'spline'.
-
ModuleNotFoundError: django という名前のモジュールがない 問題1解決済み
-
ImportError: scipyという名前のモジュールがない(解決済み)
-
print'の呼び出しに括弧がない Python for Beginners
-
ImportError を解決します。pandas をインストールした後に 'pandas' という名前のモジュールがない。
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
DataFrameのソート問題
-
ImportError: 名前 '_validate_lengths' をインポートできない。
-
ImportError: 名前のインポートができない imsave エラー
-
ORMにおけるトランザクションとロック、Ajaxによる非同期リクエストと部分リフレッシュ、Ajaxによるファイルアップロード、日時指定Json、マルチテーブルクエリブックのシステム
-
Pythonを学んだ後、このまとめを整理するために夜更かしすることに...。
-
Pythonのタイトル。学生情報管理システム - アドバンス版 (GUI + MySQLデータベース)
-
Pythonのsum関数でTypeError: unsupported operand type(s) for +: 'int' and 'list' エラーを解決する。
-
パイソン] Python パイソンミニゲーム - 欲張りスネークアドベンチャー
-
python3 エラー。AttributeError: 'dict' object has no attribute 'iteritems' -- Solution
-
pygalマッピング "AttributeError: 'NoneType' オブジェクトには 'decode' という属性がありません"