首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Python中的.JSON文件转换和CSV操作问题

Python中的.JSON文件转换和CSV操作问题
EN

Stack Overflow用户
提问于 2021-02-21 18:38:22
回答 2查看 121关注 0票数 0

很抱歉这么长的邮筒!我是个不识字的人,所以请容忍我:

我正在做一个项目,使用提取的Fitbit静息心率数据来比较一系列年份之间的心率值。fitbit数据导出为一个.json文件,我正试图将该文件转换为.csv以进行进一步分析。我从github中提取了一个脚本,该脚本将.json文件转换为..csv格式的文件,但是当输入静止的心率数据时,我遇到了一些麻烦。

来自 .json:的示例行

代码语言:javascript
代码运行次数:0
运行
复制
[{
"dateTime" : "09/30/16 00:00:00",
"value" : {
"date" : "09/30/16",
"value" : 76.83736383927637,
"error" : 2.737363838373737
}

将嵌套框架转换为列的代码节:

代码语言:javascript
代码运行次数:0
运行
复制
# reading json into dataframes
resting_hr_df = get_json_to_df(file_list=resting_hr_file_list).reset_index()

# Heart rate contains a sub json that are explicitly converted into column
resting_hr_df['date'] = resting_hr_df['value'].transform(lambda x: make_new_df_value(x, 'date'))
resting_hr_df['value'] = resting_hr_df['value'].transform(lambda x: make_new_df_value(x, 'value'))
resting_hr_df['error'] = resting_hr_df['value'].transform(lambda x: make_new_df_value(x, 'error'))
resting_hr_df = resting_hr_df.drop(['value', 'index'], axis=1)

有两个名为'value‘的变量,我认为这是造成问题的原因。

当使用熊猫中的transform函数为嵌套的dataframe键分配变量名时,第二个“value”值将存储为.csv文件中的0。我应该如何存储这些值?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-21 18:53:57

问题是,这是一个嵌套的json文件。解决方案是用json加载json文件,然后用json_normalize加载到大熊猫中。

代码语言:javascript
代码运行次数:0
运行
复制
import json
import pandas as pd

with open('filename.json') as data_file:    
    data = json.load(data_file)  

resting_hr_df = pd.json_normalize(data)
resting_hr_df

输出resting_hr_df

代码语言:javascript
代码运行次数:0
运行
复制
|    | dateTime          | value.date   |   value.value |   value.error |
|---:|:------------------|:-------------|--------------:|--------------:|
|  0 | 09/30/16 00:00:00 | 09/30/16     |       76.8374 |       2.73736 |
票数 1
EN

Stack Overflow用户

发布于 2021-02-21 18:50:10

您可以使用默认的熊猫函数(如read_json )轻松地解决此方法。

代码语言:javascript
代码运行次数:0
运行
复制
df = pd.read_json('abc.json', orient='index')
data = df.to_csv(index=False)
print(data)

通过将json文件转换为csv文件可以很容易地解决这个问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66305759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档