V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
NAPATA
V2EX  ›  问与答

一个 Python 切片问题

  •  
  •   NAPATA · Jul 27, 2019 · 1763 views
    This topic created in 2477 days ago, the information mentioned may be changed or developed.
    在排查一个数据问题时候,遇到一个 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 replies    2019-07-27 17:32:57 +08:00
    cece0417
        1
    cece0417  
       Jul 27, 2019
    用的 35,输出
    101005
    xxxxx 小区
    xx 路 365.357.369
    89 幢 3-7 层楼
    感觉没什么区别呀,是不是 369 后面的空格有问题
    NAPATA
        2
    NAPATA  
    OP
       Jul 27, 2019 via iPhone
    @cece0417 我用 3.6 也是正常的,这难道是个 2.7 的 bug ?
    meik2333
        3
    meik2333  
       Jul 27, 2019
    python2 里面一个中文字符长度为 3
    python2: len('中文') = 6
    python3: len('中文') = 2
    NAPATA
        4
    NAPATA  
    OP
       Jul 27, 2019 via iPhone
    @meik2333 懂了
    aaronhua
        5
    aaronhua  
       Jul 27, 2019
    @meik2333 #3 楼正解,Python2 的字符串还要想想前面要不要加 u 的问题。
    jaskle
        6
    jaskle  
       Jul 27, 2019 via Android
    蟒蛇切片?要沾酱吃不?
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5386 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 08:05 · PVG 16:05 · LAX 01:05 · JFK 04:05
    ♥ Do have faith in what you're doing.