2016-04-20 81 views
-3

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

这里的文字

loan:0 
unpaidfees:-3510000 
total:585677088.5 

我使用Python来做到这一点的一个块。

唯一现有的代码,我在的地方是:

import urllib2 

data = urllib2.urlopen("URL") 
+1

凡现有的代码? – Selcuk

+0

不需要。我只是问,当所有文本都在一个大字符串中时,有人会如何格式化文本块中的数字。 –

+0

我可以包含的唯一代码是具有敏感网址的urllib2.urlopen(),我不包括它。 –

回答

2

像这样:

>>> 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)] 
+0

同意。斯普利特是要走的路。 –

+1

将'map'调用包装在'dict'中以获取字典。以这种方式修改特定字段的值比较容易(而不是遍历整个列表并单独检查每个元组)。 –

+0

完美!正是我需要的,谢谢。 –