V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
NAPATA
V2EX  ›  问与答

一个 Python 切片问题

  •  
  •   NAPATA · 2019-07-27 16:35:26 +08:00 · 1285 次点击
    这是一个创建于 1981 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在排查一个数据问题时候,遇到一个 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
    6 条回复    2019-07-27 17:32:57 +08:00
    cece0417
        1
    cece0417  
       2019-07-27 16:47:41 +08:00
    用的 35,输出
    101005
    xxxxx 小区
    xx 路 365.357.369
    89 幢 3-7 层楼
    感觉没什么区别呀,是不是 369 后面的空格有问题
    NAPATA
        2
    NAPATA  
    OP
       2019-07-27 16:51:05 +08:00 via iPhone
    @cece0417 我用 3.6 也是正常的,这难道是个 2.7 的 bug ?
    meik2333
        3
    meik2333  
       2019-07-27 16:51:38 +08:00
    python2 里面一个中文字符长度为 3
    python2: len('中文') = 6
    python3: len('中文') = 2
    NAPATA
        4
    NAPATA  
    OP
       2019-07-27 17:02:01 +08:00 via iPhone
    @meik2333 懂了
    aaronhua
        5
    aaronhua  
       2019-07-27 17:19:08 +08:00
    @meik2333 #3 楼正解,Python2 的字符串还要想想前面要不要加 u 的问题。
    jaskle
        6
    jaskle  
       2019-07-27 17:32:57 +08:00 via Android
    蟒蛇切片?要沾酱吃不?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2690 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 08:08 · PVG 16:08 · LAX 00:08 · JFK 03:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.