需要使用Python解析lambda中的JSON对象,以便可以执行Redshift Copy命令并加载数据。
下面是从查询字符串生成的JSON对象的示例,其中排序根据因素而不同。
{"person":..., "address":...,"state":...},
{"person":..., "address":...,"state":...},
{"address":..., "state":...,"person":...},
现在我的问题是我有一些操作来格式化json,使redshift可以接受这个格式,对于每个新的json对象,我需要删除逗号。
{"person":..., "address":...,"state":...}{"address":..., "state":...,"person":...}
处理的逻辑是res = res.replace(',{"person"' , '}{"person"')
对于具有不同排序{"address":..., "state":...,"person":...}
的对象,使用上述逻辑,这成为一个问题,因为假设{"person"
总是第一个不完全为真的字段。
还尝试将json转换为csv,但这会导致数据与列名不一致。
1条答案
按热度按时间bzzcjhmw1#
如果没有嵌套,则很容易
我的意思是,如果只有
{
和}
字符是您所显示的,则replacement命令可以只查找这些字符。如果有嵌套,则会更加困难
您不能仅依靠
},{
来检测是否需要更换。只要在任何其他级别都找不到此级别的字段名,您就可以尝试以下操作: