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

How to convert blaze data objects to json?

尝试在 blaze 中使用 json.dumps 时发生错误,提示 TypeError: object is not JSON serializable。

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

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


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

如果您想要 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

不能直接转换为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))