在解析器

时间:2017-02-12 03:37:23

标签: python json

可以从JSON调用Python函数吗?

类似于包含2个数字的JSON,以及指向这2个数字的函数的链接。

我可以解析从中检索数据的JSON文件,但我不确定如何在解析时调用函数。在解析器中,我可以对操作进行硬编码,在JSON中添加一些标识操作的东西(A代表add,S代表减法等等);所以解析器知道读取字段中传递的字母的操作。

虽然理想情况下我希望解析器只读取JSON文件并在另一个Python模块中检索正确的函数,所以每次编写一个新类时我都不必修改解析器,与这些数字不同的东西。

这可以用Python完成吗?

2 个答案:

答案 0 :(得分:0)

来自the Python standard library documentation;的“专门化JSON对象解码”(阅读:Python基础编写了以下代码块)

import json
def as_complex(dct):
    if '__complex__' in dct:
        return complex(dct['real'], dct['imag'])
    return dct

json.loads('{"__complex__": true, "real": 1, "imag": 2}',
           object_hook=as_complex)

import decimal
json.loads('1.1', parse_float=decimal.Decimal)

答案 1 :(得分:0)

您可以使用ijson库来遍历JSON:https://pypi.python.org/pypi/ijson/

ijson文档提供了几个如何迭代JSON并根据它找到的内容进行处理的示例。

如果您粘贴JSON的示例以及您希望实现的目标,我们可以为您提供更有针对性的帮助。