在Python中使用unicode/umlauts:Dictionary v manual inpu

2024-06-26 01:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用Python替换一些字符对。下面是它的样子:

umlautdict={
    'ae': 'ä',
    'ue': 'ü',
    'oe': 'ö'
    }

然后我把我的输入词按如下方式运行:

^{pr2}$

但这没有任何作用(不会发生替换)。当我打印出我的元音变音符时,我看到它是这样的:

{'ue': '\xfc', 'oe': '\xf6', 'ae': '\xc3\xa4'}

当然,这不是我想要的;但是,尝试像unicode()(-->;错误)或预先修复{}这样的事情并没有改善。在

如果我用手在replace()命令中输入'ä''ö',一切正常。我还将我的脚本(在textwarangler中工作)中的设置更改为# -*- coding: utf-8 -*-,因为它甚至可以让我在没有元音变化的情况下执行脚本。在

所以我不知道。。。在

  • 为什么会这样?为什么和什么时候元音变为“好” 当我把它们储存在字典里的时候?

  • 我怎么修?

  • 另外,如果有人知道的话:什么是值得学习的好资源 用Python编码?我总是有问题,还有很多事情 我说不明白/我绕不过去。

我正在用python2.7.10开发Mac。谢谢你的帮助!在


Tags: 脚本方式字符事情oe音符元音样子
2条回答

转换为Unicode是通过对字符串进行解码来完成的(假设您得到的是字节):

data = "haer ueber loess"
word = data.decode('utf-8')  # actual encoding depends on your data

也可以使用unicode字符串定义dict:

^{pr2}$

最后,print umlautdict将打印出该dict的一些表示,通常涉及转义。这很正常,你不用担心。在

  1. 声明你的代码。在
  2. 对特殊字符使用raw格式。在
  3. 在字符串上正确迭代:在进入下一个循环迭代时保留每次循环迭代的更改。在

以下是完成任务的代码:

\# -*- coding: utf-8 -*-

umlautdict = {
    'ae': r'ä',
    'ue': r'ü',
    'oe': r'ö'
    }

print umlautdict

inputword = "haer ueber loess"
for item in umlautdict.keys():
        inputword = inputword.replace(item, umlautdict[item])

print inputword

输出:

^{pr2}$

相关问题 更多 >