[解決済み] ピクルスオブジェクトを読み込めない
2023-04-06 14:01:55
質問
私が抱えている問題は、(1) と (2) である。
ピクルス
オブジェクトを作成します。私は両方の
pickle.loads
と
pickle.load
以下はその結果です。
pickle.loads
:
TypeError: 'str' は buffer インターフェイスをサポートしていません。
pickle.load
:
TypeError: ファイルには 'read' と 'readline' 属性が必要です。
どなたか、この処理で間違っていることを教えていただけませんか?
elif str(parser) == "SwissWithdrawn_Parser":
# swissprot name changes
print("Gathering SwissProt update info...")
cache_hits = 0
cache_misses = 0
files = set()
for f in os.listdir("out/cache/"):
if os.path.isfile("out/cache/" + f):
files.add(f)
for name in sp_lost_names:
cached = False
url = (
"http://www.uniprot.org/uniprot/?query=mnemonic%3a"
+ name
+ "+active%3ayes&format=tab&columns=entry%20name"
)
hashed_url = str(hash(url))
################### For Testing Only - use cache ##################
if hashed_url in files:
cached = True
cache_hits += 1
content = pickle.loads("out/cache/" + hashed_url) # <-- problematic line
else:
cache_misses += 1
content = urllib.request.urlopen(url)
# get the contents returned from the HTTPResponse object
content_list = [x.decode().strip() for x in content.readlines()]
if not cached:
with open("out/cache/" + hashed_url, "wb") as fp:
pickle.dump(content_list, fp)
####################################################################
# no replacement
if len(content_list) is 0:
change_log["swiss-names"] = {name: "withdrawn"}
# get the new name
else:
new_name = content_list[1]
change_log["swiss-names"] = {name: new_name}
どのように解決するのですか?
次のいずれかを行う必要があります。
読む
を最初に読み込むか (バイナリ
bytes
として)、そして
pickle.loads()
を使うか、オープンファイルオブジェクトを
pickle.load()
コマンドに渡すこともできます。後者が望ましいです。
with open('out/cache/' +hashed_url, 'rb') as pickle_file:
content = pickle.load(pickle_file)
どちらの方法もファイル名からのpickleの読み込みはサポートしていません。
関連
-
[解決済み] Pythonで、あるオブジェクトが反復可能かどうかを判断するにはどうしたらいいですか?
-
[解決済み] Pythonでオブジェクトが属性を持つかどうかを知る方法
-
[解決済み] オブジェクトの種類を決定しますか?
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み] Pythonのクラスはなぜオブジェクトを継承するのですか?
-
[解決済み] Pythonでnullオブジェクトを参照する
-
[解決済み] オブジェクトの現在のプロパティと値をすべて表示する組み込み関数はありますか?
-
[解決済み] TypeError: Python3でファイルへの書き込み時に'str'ではなくbytesのようなオブジェクトが要求される
-
[解決済み] エラーです。" 'dict' オブジェクトには 'iteritems' という属性がありません "
-
[解決済み] Pythonの文字列の前にあるbという接頭辞は何を意味するのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 前月の日時オブジェクトを返す
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] googletransがエラー 'NoneType' オブジェクトに 'group' 属性がない、と言って動かなくなった。
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Pythonでマルチプロセッシングキューを使うには?
-
[解決済み] Pythonの文字列書式をリストで使う
-
[解決済み] あるメソッドが複数の引数のうち1つの引数で呼び出されたことを保証する
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?