找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 174|回复: 6

[求助] 去除列表中的\n

0

主题

2

帖子

2

积分

贫民

积分
2
wangwz 发表于 2021-7-13 14:43:42 | 显示全部楼层 |阅读模式
本帖最后由 wangwz 于 2021-7-13 14:48 编辑

我在用xlwings解析xlsx文件的时候,由于excle文件格式不规范,有些单元格经过合并并且手动换行,导致列表中有些位置出现了\n。
如何直接将\n去除,网上一些strip和replace的方法都没用(可能是我的用法不对)
解析出的格式是:
1.png
现在的代码是

2.png
如果直接保存到数据库,\n后的内容就丢失了
3.png

回复

使用道具 举报

0

主题

848

帖子

848

积分

圣骑士

积分
848
sheeboard 发表于 2021-7-17 03:54:49 | 显示全部楼层
用pandas,pd.Series.str.strip()
回复 支持 1 反对 0

使用道具 举报

0

主题

4

帖子

4

积分

贫民

积分
4
王一_ssHqI 发表于 2021-7-15 18:32:17 | 显示全部楼层
replace可以替换'\n',你可以在交互界面实验下面的代码
'aaa\nbbb'.replace('\n','ccc')

你应该不仅是想去掉'\n',还想要让下一个列表的第一项变成正确的编号吧?
你个数据的格式比较标准,可以这样处理
orgs = list(orgs) # 如果orgs原来就是列表,可以把这一句去掉
for org in orgs:
    if org[0].split('\n'):
        a=org[0].split('\n')
        print(a[0])
        org[0]=a[0]
        try:
            orgs[orgs.index(org)+1][0]=a[1]
        except:
            pass
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
wangwz  楼主| 发表于 2021-7-16 11:30:19 | 显示全部楼层
本帖最后由 wangwz 于 2021-7-16 11:32 编辑

感谢回复,离最终效果近了一步,不过还不是我要的效果。 QQ20210716-112722@2x.png

excel中的效果是这样的,1#1550和2#1550合并成一个单元格,做了换行,两个生产线对应的数据是一样的。
如果按照现在的方法会成为这样,相当于分拆后的单元格各丢了一条产品数据
2.png


QQ20210716-112722@2x.png
QQ20210716-111607@2x.png
回复 支持 反对

使用道具 举报

1419

主题

1862

帖子

262

积分

侠客

积分
262

最佳新人热心会员默默耕耘

whydo1 发表于 2021-7-17 21:36:38 | 显示全部楼层
你可以判断一下,一行里有两个编号时,复制一条记录
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
wangwz  楼主| 发表于 2021-7-19 13:53:18 | 显示全部楼层
whydo1 发表于 2021-7-17 21:36
你可以判断一下,一行里有两个编号时,复制一条记录

小白不会写
回复 支持 反对

使用道具 举报

0

主题

848

帖子

848

积分

圣骑士

积分
848
sheeboard 发表于 2021-7-20 07:02:19 | 显示全部楼层
发个测试文件吧。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表