json - 在我获取的 json 数据中,我怎样才能分离出余额?
问题描述
所以,我一直在测试 block.io api,到目前为止我有这个:
knee = block_io.get_address_balance(labels='shibe1')
s1 = json.dumps(knee)
d2 = json.loads(s1)
print (d2)
它用这批文本返回给我:
{'status': 'success', 'data': {'network': 'DOGE', 'available_balance': '0.0', 'pending_received_balance': '0.0', 'balances': [{'user_id': 1, 'label': 'shibe1', 'address': 'A9Bda9UMBcb1183PtsBxnbj5QgP6jwkCFG', 'available_balance': '0.00000000', 'pending_received_balance': '0.00000000'}]}}
我将如何获得它以便我只能获取它的 available_balance 部分,并将其打印出来而不是所有的 json 数据?
编辑:请帮忙!找不到解决办法。
解决方案
尝试使用一些正则表达式。
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())
Breakdown:
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())
推荐阅读
- entity-framework - 如何将实体从 DAL 映射到 BL
- python - 如何在matplotlib boxplot中为每个x显示两个数字?
- python - 如何用python函数连接信号槽(qt-designer)
- php - 通过php将参数传递给python脚本
- android - Dagger2 范围,每个组件的实例
- php - 获取上传的音频文件的 id 以在 [playlist] 短代码中使用的函数
- debian - 在 Debian Jessie 中运行 apt-get update 时出现“无法获取 404”错误
- python - Python 从 xhtml:link 抓取属性值
- python - Python:给定两个文件名列表,根据日期部分查找常用文件名
- python - 如何从本地目录而不是 pip 安装的库导入模块?