前提・実現したいこと
以下のように辞書を用意し、
csvデータを読み込んだ時に""に値が更新されて、最後に集計したいのですが、
2つ以上同時に読み込むと処理の途中で上書きされてしまい
結果が変わってしまいます。copy()を使うと良いみたいですが
いまいちやり方がわかりません。宜しくお願いします。
前提は
・辞書は書き出しせずメモリ内で更新されること
・同時に2つ以上動かしても辞書が上書きされないこと
・更新される辞書は他pyから読み込んでも情報を維持すること
該当のソースコード
python3
1temp = { 2 "fruits": "", 3 "place" : "", 4 "number": "" 5} 6
使用するcsvデータ
data1
1fruits place number 2apple 100 5
data2
1fruits place number 2orange 120 4
data3
1fruits place number 2grape 150 3
更新された辞書
data1
1case1 = { 2 "fruits": "apple", 3 "place" : "100", 4 "number": "5" 5}
結果出力
例)case1は100円のりんごを5個買ったので500円です。
- 「どういうCSVデータ」を読み込んで
- 「どういう辞書の状態にしたいか」
を具体的に(CSVは2~3行で良いでしょう)書くと、回答しやすいです。
ありがとうございます。
追記しました。宜しくお願いしますm(__)m
その書き方だとまだわからないところがあって、
■ パターンA
- csvファイルが3つ(以上)ある
- csvファイルは1つのレコード(データ行)しかない(まあ、これはあまり関係ないといえば関係ないのですが)
■ パターンB
- csvファイルは1つである
- csvファイルには複数のレコードがある
のどっちなのでしょうか(それか、別のパターンCなのか)。
また、
- (あ) CSVの(各ファイル&)各行は、行を読み込んだら何か処理を行うので、次の行を読むときには前の行のデータを忘れても良い
- (い) CSVの(各ファイル&)各行を全て読み出し、一旦保持しておいて、その後何か処理をしたい
でも少し処理は変わると思います。
(い)の場合は普通は辞書をListに入れていきます。(あ)の場合はその必要はないです。
※ まあ、Bで(い)なのかなぁ、という気はするのですが...
私の質問も回りくどいですね。。。
もう少し端的に言うと「何に困っているのか」が把握しづらいです。
- こういう入力データがあって、
- こういうプログラムを書いたんだけど、
- こういう結果になってほしいのだが、
- 意に反してこういう結果になってしまって困っている
みたいな情報があると回答しやすいんですが。
パターンAのヘッダー行とレコード行の2行になります。
ファイルが読み込まれたらテンプレートの辞書をコピーしてそれぞれのデータ毎に
辞書が分かれるようにしたいですが、その部分がわからなくて困ってます。
回答2件
あなたの回答
tips
プレビュー