我正在尝试转换一个JSON文件。我的主管建议使用两个函数convertTo(data)(将JSON转换为字符串)和convertFrom(data)(将字符串转换为JSON;我不确定这个函数的用途)。在
我目前的方法使用了很多重构和多个函数。在
#returns a String
def __convert(data):
convStr = __convertTo(data)
convStr = __fields(convStr)
return convStr
#convert JSON to a String
def __convertTo(data):
str = "" + data
return str
#takes string arg (prev converted from JSON) to split it into useful info
def __fields(data)
#########
iCalStr = __iCalTemplate(title, dtStart, UID, remType, email)
return iCalStr
#
def __iCalTemplate(title, dtStart, UID, remType, email):
icsTempStr = "BEGIN:VEVENT\n
DTSTART:" + dtStart + "\nUID:" + UID + "\nDESCRIPTION:" + desc + "\nSUMMARY:" + title
if remType is not None
icsTempStr += "\nBEGIN:VALARM\nACTION:" + remType + "DESCRIPTION:This is an event reminder"
if remType is email
icsTempStr += "\nSUMMARY:Alarm notification\nATTENDEE:mailto:" + email
icsTempStr += "\nEND:VALARM"
return icsTempStr
任何提示或建议都会很有帮助。我完全知道这个代码需要大量的工作。在
我最终用了一种完全不同的、更有效的方法来完成这一任务。总之,我的方法遍历JSON,从每个字段中提取每个值,并手动将其放在iCalendar模板中的适当位置。它返回一个字符串。像这样。。。在
这不是一个完整的答案,而是一个较长的提示。在
有一个Python习惯用法将非常有助于您构建字符串,尤其是潜在的大型字符串。看一个例子可能比解释要容易得多:
与字符串连接相比,这种习惯用法有许多优点,如果您正确地编写模板,就可以完全消除对函数的需要。例如,可选插入可以给定“”的值。一旦您正确地格式化了iCal模板,就只需要从JSON中检索正确的数据点。。。如果您将模板插入点命名为JSON中的插入点,那么您甚至可以一步完成转换。经过一点计划,你的最终答案可能是简单的:
^{pr2}$要做一个快速(稍有不同)的解释器示例:
相关问题 更多 >
编程相关推荐