[解決済み] セミコロンで区切られた文字列を辞書に分割する (Python)
2023-06-05 22:41:23
質問
次のような文字列があります。
"Name1=Value1;Name2=Value2;Name3=Value3"
Pythonの組み込みクラス/関数で、その文字列を受け取って、まるで私がこれをやったかのように辞書を構築するものはないでしょうか。
dict = {
"Name1": "Value1",
"Name2": "Value2",
"Name3": "Value3"
}
利用可能なモジュールに目を通しましたが、一致するものが見つからないようです。
ありがとうございます。関連するコードを自分で作成する方法を知っていますが、そのような小規模なソリューションは通常、地雷が発生するのを待っています (たとえば、誰かが Name1='Value1=2'; と書くなど) ので、通常は事前にテストされた関数を好みます。
それなら自分でやります。
どのように解決するのですか?
ビルトインはありませんが、ジェネレータの内包でかなり簡単に実現できます。
s= "Name1=Value1;Name2=Value2;Name3=Value3"
dict(item.split("=") for item in s.split(";"))
[編集]をクリックします。 あなたの更新から、あなたはクォートを処理する必要があるかもしれないことを示しました。 これは、あなたが探している正確なフォーマットが何であるか(どの引用文字が受け入れられるか、どのエスケープ文字か等)によって、物事を複雑にしています。 csvモジュールがあなたのフォーマットをカバーできるかどうか見てみるとよいでしょう。 CSVは一連のレコードを繰り返し処理するように設計されているので、最初の行を見るために.next()を呼び出しているのです。 あなたのニーズに合わせて調整してください)。
>>> s = "Name1='Value=2';Name2=Value2;Name3=Value3"
>>> dict(csv.reader([item], delimiter='=', quotechar="'").next()
for item in csv.reader([s], delimiter=';', quotechar="'").next())
{'Name2': 'Value2', 'Name3': 'Value3', 'Name1': 'Value1=2'}
フォーマットの正確な構造によっては、独自の簡単なパーサーを書く必要があるかもしれません。
関連
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] Pythonで辞書に新しいキーを追加するにはどうすればよいですか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 与えられたキーがすでに辞書に存在するかどうかをチェックする
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】Pythonに三項条件演算子はありますか?
-
[解決済み] Jupyterノートブックでenv変数を設定する方法
最新
-
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でのAWS Lambdaのインポートモジュールエラー
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] 小数点以下1桁を取得する[重複]。
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] python-requests モジュールからのすべてのリクエストをログに記録します。
-
[解決済み] SQLAlchemy - テーブルのリストを取得する
-
[解決済み] PyQtアプリケーションのスレッド化。QtスレッドとPythonスレッドのどちらを使うか?
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?