尝试使用一些正则表达式。
import re
data="{'status': 'success', 'data': {'network': 'DOGE', 'available_balance': '0.129',
'pending_received_balance': '0.0', 'balances': [{'user_id': 1, 'label': 'shibe1',
'address': 'A9Bda9UMBcb1183PtsBxnbj5QgP6jwkCFG', 'available_balance': '0.00000000',
'pending_received_balance': '0.00000000'}]}}"
pattern = re.compile("(?<=available_balance': ').*?(?=')")
matches = pattern.finditer(data)
for match in matches:
print(match.group())
细分:
import re 导入python内置的正则表达式库
data="{'status': 'success', 'data': {'network': 'DOGE', 'available_balance': '0.129',
'pending_received_balance': '0.0', 'balances': [{'user_id': 1, 'label': 'shibe1',
'address': 'A9Bda9UMBcb1183PtsBxnbj5QgP6jwkCFG', 'available_balance': '0.00000000',
'pending_received_balance': '0.00000000'}]}}" 是一个包含要匹配的数据的字符串。您可以将其替换为 json 数据。
pattern = re.compile("(?<=available_balance': ').*?(?=')") 编译正则表达式以查找可用余额的数据。
正则表达式分解
-
(?<= 是一个lookbehind,这意味着它将检查该值是否实际上是available_balance。
-
.* 匹配定义约束内的所有内容。
-
(?= 是向前看,这意味着它将匹配右括号之前的所有内容,以及向后看之后的所有内容。
pattern.finditer(data) 将正则表达式与data 匹配
for match in matches:
print(match.group()) 从正则表达式打印匹配项。
如果你编译这段代码,你会得到以下结果:
0.129
0.00000000
如果你想要你的变量下的代码,你去:
import re
pattern = re.compile("(?<=available_balance': ').*?(?=')")
matches = pattern.finditer(d2)
for match in matches:
print(match.group())