如何将 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))
尝试在 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))