如何将Iron Python字典转换为Python字典

时间:2014-06-15 08:43:26

标签: python ironpython

我需要将收到的IronPython字典变量转换为常规Python字典。根据我的理解,变量是所谓的:

'System.Collections.Generic.Dictionary`2[System.String,System.String]'

如果我使用:

for each in IronDictionary:
    print type(each)
    print each

我得到了:

type: '<class 'System.Collections.Generic.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'>'
'[MultiProcess, False]' # this line is a result of `print each` command

所以在本质上each就像一个普通的Python列表...... 如果我能将整个Iron字典转换为普通的Python字典,那将是很棒的。如果不可能,我不介意使用for each in IronDict:进行迭代并将每个Iron each转换为常规Python列表或Python字符串?...如何正确完成此操作?

1 个答案:

答案 0 :(得分:4)

我只能怀疑你的要求。 假设你的字典使用字符串作为键和值,如果你想从clr one创建python字典,请尝试:

pythondict = dict(clrdict)

反方向:

from System.Collections.Generic import Dictionary
clrdict = Dictionary[str,str](pythondict)

您也可以尝试按原样使用它而不进行转换。 你能说明为什么需要转换吗?

编辑: 这是一个有效的例子:

from System.Collections.Generic import Dictionary
clrdict = Dictionary[str,str]()
clrdict.Add('k1','v1')
clrdict.Add('k2','v2')
pythondict=dict(clrdict)

print clrdict
print type(clrdict)
print pythondict
print type(pythondict)

产生:

Dictionary[str, str]({'k1' : 'v1', 'k2' : 'v2'})
<type 'Dictionary[str, str]'>
{'k2': 'v2', 'k1': 'v1'}
<type 'dict'>