Python - 识别字符串中的数字

时间:2017-05-02 16:50:19

标签: python string integer

我已按照this link上指示的方向使用let data = [{ assigned_user: { name: 'Paul', id: 34158 }, doc_status: "processed" }, { assigned_user: { name: 'Simon', id: 48569 }, doc_status: "processed" }, { assigned_user: { name: 'Simon', id: 48569 }, doc_status: "processed" } ]; let res = []; for (let user of JSON.stringify(data).match(/("name":)"\w+(?=")/g).map(user => user.replace(/["]|name":/g, ""))) { if (!res.find(({user: _name}) => _name === user)) res.push({user, count: 1}) else ++res.find(({user: _name}) => _name === user).count } console.log(res);方法检查字符串是否为数字,但对我来说失败了。

我只是在尝试:

.isdigit()

打印:

print("final weight:", weight)
if weight.isdigit() == True:
    print("yes")
if weight.isdigit() == False:
    print("weight is not a digit")

我很困惑,为什么这会失败,因为final weight: 1,873 weight is not a digit 实际上是一个数字。

更新

使用RegEx工作。我只是这样做:

1,873

1 个答案:

答案 0 :(得分:3)

这不是Python中的合法数字:它在中间有一个逗号。当然,你和我都认识到它,但是大多数计算机语言都不允许使用这样的数字逗号。

如果您需要识别此类号码,请尝试搜索正则表达式以进行号码识别,例如herehere

第二个参考来自 ralf htp 对主要问题的评论。

STYLE UPDATE:

针对布尔常量检查布尔表达式是多余的。只需使用该值:

if weight.isdigit():
    print("yes")
else:
    print("weight is not a digit")