循环遍历python

时间:2017-10-13 16:36:35

标签: python json for-loop

我是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 (称为名称),当前,初始

的表

1 个答案:

答案 0 :(得分:0)

您可以使用一个词典来引用另一个词典

for k, v in initial,items():
    from_other_dict = current.get(k,'')
    print(k, v, ','.join(from_other_dict), sep=",")