格式化字符串内的数字[关闭]
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
中以获取字典。以这种方式修改特定字段的值更容易(而不是遍历整个列表并单独检查每个元组)。
完美!正是我需要的,谢谢。以上是关于格式化字符串内的数字[关闭]的主要内容,如果未能解决你的问题,请参考以下文章