我使用模块化请求从某个网站的网址获取响应:
response = requests.get(request_url)
result = response.json()
因此,我得到一个带有样本值的dict类型的结果,如下所示:
result = {u'bids': [[u'16.85', u'53.4125', u'900'], [u'16.83', u'713.0125', u'12000']], u'asks': [[u'9999999999.00', u'0.0001', u'1000000']]}
我只是想知道如何使用原始形式的值得到一个字典:
result = {bids: [[16.85, 53.4125, 900], [16.83, 713.0125, 12000]], asks: [[123.00', 0.02, 10]]}
也就是说,将unicodes更改为其形式,让float类型为float类型,int为int,str为str。
请提供一些解决方案和谢谢。
答案 0 :(得分:0)
要将对象的任何字符串表示形式解析为对象(例如“[1,2,3]”到[1,2,3]),您有两个选择:
有一个名为eval的内置函数可以执行此类操作,但它不安全,因为它解析任何返回值的python表达式,而且知道python及其语法的人可能会损坏您的系统很多,如果你解析他的表达。
另一个选项是ast模块的literal_eval函数。它解析给定的表达式,如eval,但“提供的字符串或节点可能只包含以下Python文字结构:字符串,数字,元组,列表,dicts,布尔值和None。” (来自https://docs.python.org/2/library/ast.html#ast.literal_eval)。这更安全,是解析从不受信任的来源提取的数据的推荐方法。