V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
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
mnsw
V2EX  ›  Python

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

  •  
  •   mnsw · 2016-01-12 22:32:58 +08:00 · 2000 次点击
    这是一个创建于 3029 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想写一个用 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 条回复    2016-01-13 21:16:26 +08:00
    zhyu
        1
    zhyu  
       2016-01-12 22:36:23 +08:00
    ```python

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

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

    换成 ElementTree 比较好
    mnsw
        4
    mnsw  
    OP
       2016-01-13 16:00:09 +08:00
    @zhyu 现在是用 DOM 解析的
    zhyu
        5
    zhyu  
       2016-01-13 21:16:26 +08:00
    @zhyu 看程序就知道你用 dom 解析了… dom 的解决方法我都写了
    只是建议不用 dom 而已
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2817 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 15:08 · PVG 23:08 · LAX 08:08 · JFK 11:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.