我正在编写一些Python代码,它每隔5分钟调用一次智能设备API,并以1为单位返回值. t1me个对象是str个,其余的是float个.

t1me = datetime.datetime.fromtimestamp(response.json()['data']['time']).strftime("%Y-%m-%d %H:%M:%S")
co2 = response.json()['data']['co2']
humidity = response.json()['data']['humidity']
pressure = response.json()['data']['pressure']
temp = response.json()['data']['temp']
voc = response.json()['data']['voc']

t1me
'2023-06-23 13:50:14'
co2
768.0
humidity
55.0
pressure
1003.3
temp
18.9
voc
46.0

我想将结果合并到一个简单的数据框中,就像这样,这样我就可以将其导出到Google Sheets:

Datetime Temp Humidity Pressure CO2 VOC
2023-06-23 13:50:14 18.9 55.0 1003.3 768.0 46.0

但我不确定如何对待Pandas ? 可能只需要在一个JSON请求中调用所有数据,但也不确定如何做到这一点.

推荐答案

IIUC使用json_normalize并将列转换为日期时间-如果需要,字符串表示添加Series.dt.strftime:

j = response.json()['data']
df = pd.json_normalize(j)

#datetimes
df['time'] = pd.to_datetime(df['time'], unit='s')

#strings, add if necessary
df['time'] = df['time'].dt.strftime("%Y-%m-%d %H:%M:%S")

Python相关问答推荐

Class_weight参数不影响RandomForestClassifier不平衡数据集中的结果

使用plotnine和Python构建地块

在内部列表上滚动窗口

pandas DataFrame GroupBy.diff函数的意外输出

acme错误-Veritas错误:模块收件箱没有属性linear_util'

根据不同列的值在收件箱中移动数据

根据在同一数据框中的查找向数据框添加值

更改键盘按钮进入'

在Mac上安装ipython

我如何使法国在 map 中完全透明的代码?

使用NeuralProphet绘制置信区间时出错

用砂箱开发Web统计分析

Python中的变量每次增加超过1

寻找Regex模式返回与我当前函数类似的结果

如何在Python中使用Iscolc迭代器实现观察者模式?

统计numpy. ndarray中的项目列表出现次数的最快方法

在第一次调用时使用不同行为的re. sub的最佳方式

为什么在生成时间序列时,元组索引会超出范围?

在使用ROLING()获得最大值时,是否可以排除每个窗口中的前n个值?

如何在Django查询集中生成带有值列表的带注释的字段?