python - 如何交换字符串中的逗号和点

标签 python string

我正在从网站获取价格,格式为:10.990,00,这本身没有意义。使它成为 10,990.00 需要什么。我试过跟随,但它正在替换所有内容。

price = "10.990,00"
price = price.replace(',','.',1)
price = price.replace('.',',',1)

我做错了什么?

最佳答案

首先用点替换第一个逗号后,您正在用逗号替换第一个 点。第一个 str.replace() 插入的点不能被第二个 str.replace() 调用替换。

使用 str.translate() method相反:

try:
    from string import maketrans   # Python 2
except ImportError:
    maketrans = str.maketrans      # Python 3

price = price.translate(maketrans(',.', '.,'))

这会在遍历字符串时将逗号换成点,反之亦然,并且不会进行双重替换,并且非常快启动。

我使代码与 Python 2 和 3 兼容,其中 string.maketrans()static str.maketrans() function取代.

这里的异常(exception)是 Python 2 unicode;它与 Python 3 中的 str.translate() 工作方式相同,但没有 maketrans 工厂为您创建映射。您可以为此使用字典:

unicode_price = unicode_price.translate({u'.': u',', u',': u'.'})

演示:

>>> try:
...     from string import maketrans   # Python 2
... except ImportError:
...     maketrans = str.maketrans      # Python 3
... 
>>> price = "10.990,00"
>>> price.translate(maketrans(',.', '.,'))
'10,990.00'

关于python - 如何交换字符串中的逗号和点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29036023/

相关文章:

python - PyCurl 7.19.0 : get cookies from response using getinfo(pycurl. Cookie 列表)

c# - Automapper:将 int 转换为字符串

java - 如何在一个文件中拆分两个连续的 xml? (Java/安卓)

java - 正则表达式:将语句与空字符串组合

python - 尝试使用键盘记录器附加文本文件

python - 无法正确地将 Numpy 数组转换为 Python 扩展的 c 数组 (c++)

python - 每当 ip 监视器写入 stdout 时调用脚本

python - 根据不同大小的数组 Y 的条件屏蔽数组 X

c - 凯撒密码和反向文本程序的问题

javascript - 在 jquery 中选择 ID + 任意数字