将字符串输出转换为JSON

5

我正在通过API从外部系统(Salesforce Marketing Cloud)获取一些数据,然后以以下格式返回数据:

Results: [(List){
   Client =
      (ClientID){
         ID = 113903
      }
   PartnerKey = None
   CreatedDate = 2013-07-29 04:43:32.000073
   ModifiedDate = 2013-07-29 04:43:32.000073
   ID = 1966872
   ObjectID = None
   CustomerKey = "343431CD-031D-43C7-981F-51B778A5A47F"
   ListName = "PythonSDKList"
   Category = 578615
   Type = "Private"
   Description = "This list was created with the PythonSDK"
   ListClassification = "ExactTargetList"
 }]

这个格式与 JSON 十分接近,我想把它格式化成 JSON 文件以便导入到我们的数据库中。有什么好的方法吗?

谢谢。


这是一个像这样格式化的字符串吗?还是一个对象? - casraf
1
我会研究一下 pyparsing 包。 - alecxe
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Ahmad Siavashi
2个回答

2
看起来是Python中已经存在的一个叫做suds的对象。Fuel-SDK使用它。
suds对象已经为您完成了这项工作。只需调用您要查找的属性即可。
但是,如果您想将其作为字典使用,下面是常用函数的附加内容:
from suds.sudsobject import asdict

def recursive_asdict(d):
    out = {}
    for k, v in asdict(d).iteritems():
        if hasattr(v, '__keylist__'):
            out[k] = recursive_asdict(v)
        elif isinstance(v, list):
            out[k] = []
            for item in v:
                if hasattr(item, '__keylist__'):
                    out[k].append(recursive_asdict(item))
                else:
                    out[k].append(item)
        else:
            out[k] = v
    return out

def suds_to_json(data):
    return json.dumps(recursive_asdict(data))

第一个将其转换为字典,第二个将其转换为合适的JSON格式。
一些有用的链接: https://fedorahosted.org/suds/wiki/Documentation

dict.iteritems -> dict.items重命名以在Python3中运行是我的解决方案。感谢您的回复。 - gustavo.sdo

1

要转换您的数组,您可以使用 var jsonString = JSON.stringify(yourArray);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接