使用python3将json数据转换为csv,但不起作用

时间:2018-12-28 06:44:29

标签: python json pandas csv

我的大型数据集包含一组数字

从服务器获取数据

每行数据都是这样的:

{"body_data":[
{'height': 170.00, 'weight': 165.00, 'blood': 3.00, 'sugar': 100.02, 'fat': 36.02, 'time_object': 1544443260000},
{'height': 170.00, 'weight': 165.00, 'blood': 3.00, 'sugar': 100.02, 'fat': 36.02, 'time_object': 1544443260000},
],"symbol":"DATA_FAT","empty":false}

我试图将数据保存为* .json格式,将其导入为新文件并用csv重写,但出现错误。

我尝试对pandas使用以下代码:

df = pd.DataFrame.from_dict(data, orient='index',columns=['open', 'height', 'weight', 'blood', 'sugar', 'fat', 'time_object'])

它给了我以下错误:

 File "pandas/_libs/src/inference.pyx", line 1517, in pandas._libs.lib.to_object_array
TypeError: object of type 'bool' has no len()

任何人都可以帮助我

1 个答案:

答案 0 :(得分:2)

我相信您需要选择嵌套键body_data

df = pd.DataFrame(data['body_data'])
print (df)
   blood    fat  height   sugar    time_object  weight
0    3.0  36.02   170.0  100.02  1544443260000   165.0
1    3.0  36.02   170.0  100.02  1544443260000   165.0

如果要更改列的顺序(open键不在示例数据中,则在输出中有NaN个):

df = pd.DataFrame(data['body_data'],
                  columns=['open', 'height', 'weight', 'blood', 'sugar', 'fat', 'time_object'])
print (df)
   open  height  weight  blood   sugar    fat    time_object
0   NaN   170.0   165.0    3.0  100.02  36.02  1544443260000
1   NaN   170.0   165.0    3.0  100.02  36.02  1544443260000