与创建for循环/嵌套for循环相比,有没有更适合使用元数据字典编写固定宽度字符串的方法?你知道吗
我的意见如下:
{
't_order': 11112014,
't_date': 20150101,
't_external': 'from sample',
't_mode': 'A',
'message_id': 'ID01',
't_value': 123.45
}
我的元词典看起来是这样的:
[{'field': 'message_id',
'decimalPrecision': '0',
'isTypeOf': 'C',
'Length': '8',
'Level': '0',
'Start': '1'},
{'field': 't_mode',
'decimalPrecision': '0',
'isTypeOf': 'C',
'Length': '1',
'Level': '0',
'Start': '9'},
{'field': 't_order',
'decimalPrecision': '0',
'isTypeOf': '9',
'Length': '8',
'Level': '0',
'Start': '10'},
{'field': 't_external',
'decimalPrecision': '0',
'isTypeOf': 'C',
'Length': '25',
'Level': '0',
'Start': '18'},
{'field': 't_date',
'decimalPrecision': '0',
'isTypeOf': '9',
'Length': '8',
'Level': '0',
'Start': '43'},
{'field': 't_value',
'decimalPrecision': '4',
'isTypeOf': '9',
'Length': '18',
'Level': '0',
'Start': '51'}]
任何isTypeOf == C
是str
,isTypeOf == 9
是int
。
Start
值是字符串位置的开始,Length
是左空格填充的字段长度。数字字段不包含小数点,精度为零。也就是说,给定的样本将显示:
ID01 A11112014from sample 20150101 1234500
有什么比循环/嵌套for语句更有效的方法吗?你知道吗
我想有更好的方法来做这件事,但这似乎是可行的:
输出:
我强烈建议,for循环将是实现这一点的最python方法。Python倾向于可读性而不是简洁性
复杂总比复杂好
也就是说,如果您的元数据是以关键字作为字段名的dictionary,那么您可以索引到dictionary中并避免嵌套循环。你知道吗
真正的python方法是确保原始记录是由生成器生成的,而不是加载到列表中。你知道吗
相关问题 更多 >
编程相关推荐