推荐学习书目
› Learn Python the Hard Way
Python Sites
› PyPI - Python Package Index
› http://diveintopython.org/toc/index.html
› Pocoo
值得关注的项目
› PyPy
› Celery
› Jinja2
› Read the Docs
› gevent
› pyenv
› virtualenv
› Stackless Python
› Beautiful Soup
› 结巴中文分词
› Green Unicorn
› Sentry
› Shovel
› Pyflakes
› pytest
Python 编程
› pep8 Checker
Styles
› PEP 8
› Google Python Style Guide
› Code Style from The Hitchhiker's Guide
mns
V2EX  ›  Python

关于 Python 解码的求教,我应该怎么修改?万分感谢

  •  
  •   mns · Jan 12, 2016 · 2890 views
    This topic created in 3910 days ago, the information mentioned may be changed or developed.

    想写一个用 Python 来抽取 xml 文件中的一些数据并转码
    xml 如下

    <?xml version="1.0" encoding="utf-8"?>
    <config>
    <HTTP>
    <SITE NAME="HUNLIAN" DESCRIPTION="%E5%A9%9A%E6%81%8B" >
    </SITE>
    <SITE NAME="jiaoyou" DESCRIPTION="%E5%A9%9AB" >
    </SITE>
    </HTTP>
    </config>

    Python 如下
    ```
    #!/usr/bin/python
    #--coding:utf-8--

    from xml.dom.minidom import parse 
    import xml.dom.minidom 
    import urllib   
    
    DOMTree = xml.dom.minidom.parse("xff.xml")  
    Data = DOMTree.documentElement
    
    Sites = Data.getElementsByTagName("SITE")
    
    for site in Sites:
        L = "name: %s " %site.getAttribute("NAME")
        M = "desc: %s" %site.getAttribute("DESCRIPTION")
    
        url = urllib.unquote(M[0])
        print L,M
    
        f = open("info.txt", "a")
        f.write(L+'\n'+M+'\n'+url+'\n')
        f.close
    
    结果如下:
    
    name: HUNLIAN 
    desc: %E5%A9%9A%E6%81%8B
    M(0)
    name: jiaoyou 
    desc: %E5%A9%9AB
    M(0)
    
    实际想要的是 M(0)应该是 desc 的 URL 解码
    
    5 replies  •  2016-01-13 21:16:26 +08:00
    zhyu
        1
    zhyu  
       Jan 12, 2016
    ```python

    >>> import urllib
    >>> print urllib.unquote('%E5%A9%9A%E6%81%8B').decode('utf8')
    婚恋

    ```
    mns
        2
    mns  
    OP
       Jan 12, 2016
    @zhyu 把 decode 添加到程序中,结果是
    name: HUNLIAN
    desc: %E5%A9%9A%E6%81%8B
    d
    name: jiaoyou
    desc: %E5%A9%9AB
    d
    zhyu
        3
    zhyu  
       Jan 12, 2016
    @mnsw xml parse 的问题
    M = "desc: %s" % site.getAttribute("DESCRIPTION").encode('utf-8')

    换成 ElementTree 比较好
    mns
        4
    mns  
    OP
       Jan 13, 2016
    @zhyu 现在是用 DOM 解析的
    zhyu
        5
    zhyu  
       Jan 13, 2016
    @zhyu 看程序就知道你用 dom 解析了… dom 的解决方法我都写了
    只是建议不用 dom 而已
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2520 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 04:45 · PVG 12:45 · LAX 21:45 · JFK 00:45
    ♥ Do have faith in what you're doing.