序列化集合以在python中解析

时间:2011-12-14 12:51:28

标签: c# python serialization deserialization

我在C#中有一些简单元素。元素就像:

public class Element
{
    public string AName { get; private set; }

    public string PName { get; private set; }

    public string Value { get; set; }
}

我需要将此集合作为字符串传递给Python脚本。在每个元素的python中,我需要调用函数,如Func(AName,PName,Value)。我通过在C#和python编写代码中将集合序列化为JSON来完成此任务:

elements = json.loads(JSON)
for element in elements:
    Func(routeLayer, element['AName'], element['PName'], element['Value'])

但现在事实证明我不能使用Python的json模块。所以我需要一种新方法将此集合传递给脚本,不要使用任何其他模块。我是Python中的一个真正的菜鸟,所以我能想象的解决方案很难看。你能给我一个建议吗?

2 个答案:

答案 0 :(得分:1)

如果您可以保证某些字符不在ANamePNameValue的字符串中,那么您可以将该字符用作分隔符。 在C#中,您可以通过简单地将三个字符串与分隔符连接来“序列化”信息,例如, "foo,bar,baz"

然后在Python中,可以使用

对信息进行反序列化
aName,pName,value = element.split(',')

PS。出于好奇,为什么不能在标准库中导入模块?

答案 1 :(得分:0)

Python中最常用的标准是XML。你有没有考虑过这个选择?

<强>更新 您可以在C#中使用XmlSerializer来序列化为XML。 here是我发现的Python的东西