TypeError:类型函数的对象不可JSON序列化

时间:2019-07-18 05:46:49

标签: python

我目前正在努力了解以下代码为何不起作用:

import json
import random

def _time_series_prc(start_date, count, periodicity, is_history=True):
    values = []

    print(type(start_date))
    print(type(periodicity))

    for i in range(count - 1):
        value = random.uniform(0, 1)
        values.append(value)

    return _build_series(values, start_date, periodicity, is_history)


def _build_series(values, start_date, periodicity, is_history):
    if is_history:
        values.reverse()

    return {
        'periodicity': periodicity,
        'startDate': start_date,
        'values': values,
    }

result = _time_series_prc('2019-07-17', 52, 'WEEKLY')

print(json.dumps(result, indent=4));

输出:

<class 'str'>
<class 'str'>
TypeError: Object of type function is not JSON serializable

在第7行,json.dumps出现错误:TypeError:类型函数的对象不可JSON序列化。我使用ptyhon的时间不长,但是我不明白这怎么可能是函数指针而不是返回值。

1 个答案:

答案 0 :(得分:1)

您的代码在Python 3.7.3上对我有用。

还请注意,for i in range(count - 1):会给您51个结果,而不是52个结果(print(len(result['values'])))。另外,尝试删除最后一行代码中的;,以防万一:)