sqldepth = [item.get('type_name') for item in depth_list]
sqldepth = sqldepth + ["ref_date", "appid", "id"]
dep_field = map(lambda p: f'"{p}"', sqldepth)
d_field = ','.join(['%s'] * len(depth_result))
self.postgresql_connenet(
f"insert into fsd.fs_data_access_depth_info({','.join(dep_field)}) values({d_field})",
depth_result)
我动态爬虫字段带有 3-h 类似的字段,拼接sql的时候程序不承认这些 。要么说你的fs_data_access_depth_info后面是字符,要么是带了 ' 引号。本以为大括号·能解决,最后还是不能解决,看到我自己静态sql带 "" 能通 ,转而ep_field = map(lambda p: f'"{p}"', sqldepth) 用map 将所有字符转为 "" ,最后通了。试了各种类型转换最好不用元组去填,巨坑。最后还是选择字符串拼接
文章讲述了作者在处理动态爬虫数据时遇到的问题,即如何在SQL插入语句中正确拼接包含特殊字符(如`3-h`)的字段。通过使用map函数将字符转换为双引号字符串解决了这个问题,避免了元组填入的困扰,最终选择了字符串拼接方式。
381

被折叠的 条评论
为什么被折叠?



