如何将blaze数据对象转换为json?

时间:2016-03-28 06:07:06

标签: python blaze

在尝试使用json.dumps时出现blaze错误,说TypeError:object不是JSON可序列化的。

data = Data("employee.json")
json.dumps(data)

3 个答案:

答案 0 :(得分:1)

您无法直接将其转换为JSON。

替代方式如下:

fields = [] # Create an empty list to hold the field names
for fieldName in data.fields: # Iterate the field names 
    fields.append(fieldName) # Add to the list

result = []        
for row in data: # Iterate each row
    currentRow = {} 
    count = 0 
    for value in row: 
        currentRow[fields[count]] = value # Add each value with corresponding key from fields
        count = count + 1
    result.append(currentRow) 
print(json.dumps(result))

答案 1 :(得分:0)

因为它是 Blaze数据对象。具有自己的函数和对象的对象,不能完全编码为json。阅读:How to make a class JSON serializable

如果您只想查看变量信息,请使用pprint函数。

答案 2 :(得分:0)

如果您想要JSON文件的交互式视图,只需评估其名称即可。您将获得相当于print data.__repr__()

的内容
from blaze import Data
from blaze.utils import example

data = Data(example('accounts.json'))
data

#    amount     name
# 0     100    Alice
# 1    -200      Bob
# 2     300  Charlie
# 3     400   Dennis
# 4    -500    Edith