我是Python的新手,所以我没有太多经验,对不起,如果这是一个愚蠢的问题。
我正在阅读一堆Json文件并将一些值存储到2个单独的词典中。我试图输出结果如下: ID,当前名称,初始名称 但我不确定如何在单个for循环中浏览这两个词典。到目前为止我所拥有的是:
for dev, dev2 in zip(current.items(), initial.items()):
print(dev, dev2, sep=",")
词典的名称是当前和初始。然而,这个输出是重复ID,所以我有:(ID,[current]),(ID,[initial]),格式有一些随机的unicode字符,所以我不知道如何解决这个问题< / p>
任何帮助将不胜感激!
这是完整的代码:(我有Python 2.7.10顺便说一句)
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=",")
最后评论for循环中的每个打印函数都单独工作,我试图通过匹配第一个字段来合并一个表中的输出。我想要获得的输出是一个ID (称为名称),当前,初始
的表答案 0 :(得分:0)
您可以使用一个词典来引用另一个词典
for k, v in initial,items():
from_other_dict = current.get(k,'')
print(k, v, ','.join(from_other_dict), sep=",")