一个 Python 切片问题

2019-07-27 16:35:26 +08:00
 NAPATA
在排查一个数据问题时候,遇到一个 python 的报错

原先是脚本是卸写在 pg 存储过程里,爬取某个网页数据,开始我以为是编码问题,导致脚本出错
再自己电脑上用 pycharm 测试了下,
大概就是如下操作
# encoding: utf-8
tt = "'101005','xxxxx 小区','xx 路 365.357.369 号,389 幢 3-7 层楼'"
print(tt.split(',')[0][1:-1])
print(tt.split(',')[1][1:-1])
print(tt.split(',')[2][1:-1])
print(tt.split(',')[3][1:-1])
输出如下=========
101005
xxxxx 小区
xx 路 365.357.369�
89 幢 3-7 层楼


往常数据用 , 来切分[1:-1]都没问题
但有一条数据象向上面的中间有 , 就导致切分的有点问题,输出的有 �
这个理论上不应该输出 xx 路 365.357.369 ,有大佬遇到过吗
用的是 python2.7
1269 次点击
所在节点    问与答
6 条回复
cece0417
2019-07-27 16:47:41 +08:00
用的 35,输出
101005
xxxxx 小区
xx 路 365.357.369
89 幢 3-7 层楼
感觉没什么区别呀,是不是 369 后面的空格有问题
NAPATA
2019-07-27 16:51:05 +08:00
@cece0417 我用 3.6 也是正常的,这难道是个 2.7 的 bug ?
meik2333
2019-07-27 16:51:38 +08:00
python2 里面一个中文字符长度为 3
python2: len('中文') = 6
python3: len('中文') = 2
NAPATA
2019-07-27 17:02:01 +08:00
@meik2333 懂了
aaronhua
2019-07-27 17:19:08 +08:00
@meik2333 #3 楼正解,Python2 的字符串还要想想前面要不要加 u 的问题。
jaskle
2019-07-27 17:32:57 +08:00
蟒蛇切片?要沾酱吃不?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/586726

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX