格式化字符串内的数字[关闭]

Posted

技术标签:

【中文标题】格式化字符串内的数字[关闭]【英文标题】:Formatting Numbers Inside of a String [closed] 【发布时间】:2016-04-20 04:04:56 【问题描述】:

目前,我正在使用我玩的在线游戏的 API 来构建工具,但在此过程中我遇到了问题。 API 将 JSON 文件返回给用户。在为我创建一个解析这些 JSON 文件的类时,我意识到我希望能够在其中一个文件中格式化一个数字,所以不是“585677088.5”,而是“585,677,088”。如果字符串只包含这个数字,这将很容易,但是这个字符串也包含一堆其他文本。

这是一段文字

loan:0
unpaidfees:-3510000
total:585677088.5

我正在使用 python 来执行此操作。

我现有的唯一代码是:

import urllib2

data = urllib2.urlopen("URL")

【问题讨论】:

你现有的代码在哪里? 不需要。我只是想问当所有文本都在一个大字符串中时,有人会如何格式化文本块中的数字。 我唯一可以包含的代码是带有敏感 URL 的 urllib2.urlopen(),我不包含它。 如果您提供代码,它会更容易。它也依赖于字符串。一直都是一样的格式吗?也许您可以进行拆分,格式化数字部分,然后加入。也许正则表达式是要走的路。 解析、替换、重复。换句话说,将字符串转换成一个结构,可以很容易地随意替换你想要的字段的值。比如,我不知道,一本字典? 【参考方案1】:

像这样:

>>> my_str = """loan:0
... unpaidfees:-3510000
... total:585677088.5"""
>>> map(lambda x: (x.split(":")[0], int(float(x.split(":")[-1]))), my_str.split("\n"))
[('loan', 0), ('unpaidfees', -3510000), ('total', 585677088)]

【讨论】:

同意。拆分是要走的路。 map 调用包装在dict 中以获取字典。以这种方式修改特定字段的值更容易(而不是遍历整个列表并单独检查每个元组)。 完美!正是我需要的,谢谢。

以上是关于格式化字符串内的数字[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Java从字符串中获取数字或货币格式[关闭]

需要单个数字(日和月)的唯一日期格式化程序[关闭]

这种数字格式有啥问题? [关闭]

如何在电话号码格式的范围内生成随机数 Postman [关闭]

在货币格式文本中的数字和字母之间插入空格[关闭]

在 T-SQL CASE 语句的 WHEN 条件中设置变量等于数字时语法不正确[关闭]