【发布时间】:2014-02-27 01:27:08
【问题描述】:
我的店里发生了各种各样的疯狂。这个请求很奇怪,但请理解我别无选择。我需要将 ironpython 字典的字符串表示形式转换为实际的 ironpython 字典......我需要在 c# 中完成。字典是从数据库中检索出来的,所以我不可能以任何其他形式得到它。
我在这里取得了一些进展。到目前为止,我有以下内容:
string python_dict = SqlSession.getPythonDictFromDatabase();
ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromString(python_dict, SourceCodeKind.Expression);
PythonDictionary dict = source.Execute<PythonDictionary>();
以上代码成功将字符串转换为python字典。到目前为止很棒。不幸的是,字典中的嵌套类仍然是字符串。那里有各种各样的东西,从字符串和整数到 SetCollections。我需要将整个数据结构转换为 python 对象的 c# 表示。可以想象,我可以在执行转换的同时遍历结构,就像我最初对 dict 所做的那样。这似乎非常混乱。它似乎也很脆弱。
这一切最糟糕的部分是什么?实际上,我大约一个月前就开始工作了。源代码丢失了。任何人都知道如何将这个字符串转换为完全表示的 python 数据结构?
【问题讨论】:
-
你能简单地使用 JSON - 在 C# 中编码,在 Python 中解码,反之亦然 - 并将其作为文本传递?我的意思是,当然,这是一个“平底船”,但它可能只是工作.. 无论如何,所有序列化器/反序列化器(包括使用 JSON 的那些)只是“在执行转换时遍历结构”,这只是支持所有给定数据/域需要支持的转换。至于“[不]丢失”代码,请考虑使用 Git 或 Hg 等 SCM 工具 ;-)
标签: c# data-structures casting ironpython