我目前正在用python从一个ruby模块编写脚本。我在ruby到python的翻译方面遇到了问题
红宝石:
plan_metrics[test_name]={ passed_count: 0, blocked_count: 0, untested_count: 0, failed_count: 0, reviewed_count: 0, test_harness_issue_count: 0, bug_failure_count: 0, defect_list: [] }
entry['runs'].each do |run|
metric_hash = plan_metrics[test_name]
%i[passed_count blocked_count untested_count failed_count].each do |key|
metric_hash[key] = metric_hash[key] + run[key.to_s]
end
在这段代码中,entry['runs']
保存passed_count
、blocked_count
、untested_count
和failed_count
的实际值,但在多个字典中。这应该是对它们进行迭代,将所有值相加,并将它们放入一个符号中(即passed_count
),该符号保存在metric_hash
现在,当我尝试翻译成python时,我并没有使用符号,而是这样做
我的Python翻译:
plan_metrics[test_name]={ "passed_count": 0, "blocked_count": 0, "untested_count": 0, "failed_count": 0, "reviewed_count": 0, "test_harness_issue_count": 0, "bug_failure_count": 0, "defect_list": [] }
for run in entry["runs"]:
metric_hash = plan_metrics[test_name]
for key in [metric_hash["passed_count"], metric_hash["blocked_count"], metric_hash["untested_count"], metric_hash["failed_count"]:
metric_hash[key] = metric_hash[key] + run[str(key)]
但是为了这个,我在网上得到了KeyError: 0
metric_hash[key] = metric_hash[key] + run[str(key)]
会吗
for key in [metric_hash["passed_count"], metric_hash["blocked_count"], metric_hash["untested_count"], metric_hash["failed_count"]:
相当于
%i[passed_count blocked_count untested_count failed_count].each do |key|
如果是这样,是什么导致了KeyError:0
如果不是的话,我怎样才能在python中完成ruby示例所做的,在符号数组上进行交互呢
如果您需要有关数据的更多信息,请告诉我要做什么print()
谢谢
在python中是这样的
这意味着
key
从列表[0, 0, 0, 0]
中获取值。你明白为什么吗相关问题 更多 >
编程相关推荐