下面的文本是来自信用卡处理程序的沙盒帐户的响应。如何将此文本读入python3对象
我想我可以用双引号替换所有的单引号,然后使用json解析器,但是肯定有更好的方法可以避免文本中有撇号的风险
我试着把它当作字典来读
print(res['id'])
但这带来了一个例外:
string indices must be integers
{'client_id': None,
'created_at': '2019-01-15T02:36:16Z',
'id': 'QS9W1s0RMiHDKyu311U8sywpy9nyo0xMzPJfNmkzPSIDbjqXF0WFrLhO',
'location_id': 'CBASEBQ9PfySJ8Rm5hV7SfRtV-cgAQ',
'order_id': None,
'product': 'EXTERNAL_API',
'reference_id': None,
'refunds': None,
'shipping_address': None,
'tenders': [{'additional_recipients': None,
'amount_money': {'amount': 20000, 'currency': 'USD'},
'card_details': {'card': {'billing_address': None,
'card_brand': 'VISA',
'cardholder_name': None,
'exp_month': None,
'exp_year': None,
'fingerprint': 'df1f5f029dcae0090e5ee877267c7863670d910f9b9d395e3315dea21f0f142a',
'id': None,
'last_4': '1111'},
'entry_method': 'KEYED',
'status': 'CAPTURED'},
'cash_details': None,
'created_at': '2019-01-15T02:36:16Z',
'customer_id': None,
'id': 'c0ea3992-8104-560a-75c4-5f88b4ba5c7b',
'location_id': 'CBASEBQ9PfySJ8Rm5hV7SfRtV-cgAQ',
'note': 'Online Transaction',
'processing_fee_money': None,
'tip_money': None,
'transaction_id': 'QS9W1s0RMiHDKyu311U8sywpy9nyo0xMzPJfNmkzPSIDbjqXF0WFrLhO',
'type': 'CARD'}]}
最终,我希望能够使用特定的键提取单个值。我该怎么做
如果这是python原语值的repr转储,那么可以使用^{}
这是一种比使用
eval()
更安全的替代方法,后者可以在不受信任的输入上运行时执行任意代码不过,最终还是最好在生成它的代码中修复它,以便它生成正确的JSON
相关问题 更多 >
编程相关推荐