私はPythonには新しく、経験はあまりありません。申し訳ありませんが、これはばかげた質問です。Pythonで2つの辞書をループする
私は数多くのJsonファイルを読み込み、いくつかの値を2つの別々の辞書に保存しています。 ID、現在の名前、当初の名前 しかし、私はどのように1つのforループで両方のディクショナリを通過するかわかりません。私はこれまで、次のされています
for dev, dev2 in zip(current.items(), initial.items()):
print(dev, dev2, sep=",")
辞書の名前は現在と初期です。しかし、この出力はIDを繰り返すので、私は:(ID、[現在])、(ID、[初期])、フォーマットはいくつかのランダムなユニコード文字を持っているので、私はこの周りに行く方法がわからない
ご協力いただければ幸いです!
これは完全なコードは次のとおりです。
from __future__ import print_function
import json
import os
import io
import shutil
current = {}
initial = {}
for file in os.listdir('.'):
if not ".json" in file:
continue
data = io.open(file, 'r', encoding="utf8")
commit = json.load(data)
for branch in commit["branches"]:
for change in branch["methodChanges"]:
method_name = change["methodProperties"]["name"]
change_type = change["methodChangeProperties"]["changeOperation"]
if method_name in current:
current[method_name].append(commit["committer"])
else:
current[method_name] = [commit["committer"]]
if change_type == "ADDED":
initial[method_name] = commit["committer"]
print("Method","Current Developer","Initial Developer", sep=",")
#for dev in current:
#print(dev, current[dev], sep=",")
#for dev2 in initial:
#print(dev2, initial[dev2], sep=",")
for dev, dev2 in zip(current.items(), initial.items()):
print(dev, dev2, sep=",")
最後のループのためにコメントを別々に動作しないで印刷機能のそれぞれが、私は両方を兼ね備えしようとしている(私はところでPythonの2.7.10を持っています)最初のフィールドに一致させることによって1つのテーブルに出力します。私が取得しようとしている出力は(名前と呼ばれる)ID とテーブルです、現在、初期
を参照するために1つの辞書を使用することができます期待している。辞書は注文されないので、それらを圧縮することはほとんど意味がありません。 – jonrsharpe
あなたの辞書をポストすることから始める*現在と初期* – RomanPerekhrest
@jonrsharpe彼らはPython 3.6から始まっています;) – Y0da