Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python在字符串foo:with regex后面提取数字_Python_Regex_Extract - Fatal编程技术网

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字典。