Python在字符串foo:with regex后面提取数字
我有这样的数据:Python在字符串foo:with regex后面提取数字,python,regex,extract,Python,Regex,Extract,我有这样的数据: {“地址”:“1Gocfvvcwtirviptqzetcx4uicxnkxgthwk”,“余额”:1234,“待定余额”:0,“已付款”:0} 我想在平衡后提取数字,但它可以是从0到无穷大 因此,从上面的示例可以看出所需的输出: 1234 顺便说一句,还有一个问题。 我有这样的数据 {“地址”:“1GocfVCWTiRViPtqZetcX4UiCxnKxgTHwK”,“发票”:“invnrku2zfmuajkuiejyve3x34ybp9awyzbfuedy2dzkxytb8
{“地址”:“1Gocfvvcwtirviptqzetcx4uicxnkxgthwk”,“余额”:1234,“待定余额”:0,“已付款”:0}
我想在平衡后提取数字,但它可以是从0到无穷大
因此,从上面的示例可以看出所需的输出:
1234
顺便说一句,还有一个问题。
我有这样的数据
{“地址”:“1GocfVCWTiRViPtqZetcX4UiCxnKxgTHwK”,“发票”:“invnrku2zfmuajkuiejyve3x34ybp9awyzbfuedy2dzkxytb8ajw”,“兑换代码”:“btcvqdd9xfyhdyni1jyelyeekgfb49qojetjlbz2cvyypm56b”}
通常的做法是什么:
strs = repr(s)
address = s[13:47]
invoice = s[62:115]
redeem_code = s[134:187]
print(address)
print(invoice)
print(redeem_code)
Thx寻求帮助。永远不要使用正则表达式来解析这样的结构化数据。一旦用适当的方法解析(加载或加载ast.literal\u eval都在这里工作),它们就变成了本地python结构,访问起来很简单
在您的情况下,使用json.loads
在一行中:
import json
print(json.loads('{"address": "1GocfVCWTiRViPtqZetcX4UiCxnKxgTHwK", "balance": 1234, "pending_balance": 0, "paid_out": 0}')["balance"])
结果:
1234
(同样的方法也适用于你的第二个问题)实际上,你向我们展示的是Python中所谓的字典。 这是一组键和值 查看此处了解更多信息: 您的词典具有以下键和值:
"address" --> "1GocfVCWTiRViPtqZetcX4UiCxnKxgTHwK"
"balance" --> 1234
"pending_balance" --> 0
"paid_out" --> 0
现在如果你有一本字典:
d = {"address": "1GocfVCWTiRViPtqZetcX4UiCxnKxgTHwK", "balance": 1234, "pending_balance": 0, "paid_out": 0}
print(d.get('balanace')) #1234
但是,如果您拥有的是一个包含该信息的外部文件,或者是从某种web服务获得的,那么您就拥有字典的字符串表示形式。以下是JSON库的价值所在:
import json
# Assuming you got a string
s = '{"address": "1GocfVCWTiRViPtqZetcX4UiCxnKxgTHwK", "balance": 1234, "pending_balance": 0, "paid_out": 0}'
d = json.loads(s) # <-- converts the string to a dictionary
print(d.get('balance')) #1234
导入json
#假设你有一根绳子
s=“{”地址“:“1Gocfvvcwtirviptqzetcx4uicxnkxgthwk”,“余额”:1234,“未决余额”:0,“已付款”:0}”
d=json.loads(s)#您的数据看起来像json,因此更好的处理方法是使用json模块进行解析
import json
parsed_data = json.loads(data)
balance = parsed_data['balance']
如果必须使用正则表达式,则可以使用以下代码
import re
match = re.search('"balance": (\d+)', data)
balance = int(match.group(1))
在本例中,我使用\d+匹配数字字符串和括号来创建一个组。组0是整个匹配字符串,组1是我们创建的第一个组 您想从“{”地址“:“1Gocfvvcwtirviptqzetcx4uicxnkxgthwk”,“发票“:“invNrKU2ZFMuAJKUiejyVe3X34ybP9awyWZBfUEdY2dZKxYTB8ajW”,“兑换代码“:“btcvqdd9xfyhdyni1jyelyeekgfb49qojetjlb2cvyypm56b”}`这是json数据,不要使用正则表达式提取这些数据。使用json.loads()
,您将得到一个python字典。