python - 从嵌套 JSON 文件中提取值

标签 python json extract

我正在尝试从空气质量传感器中提取值并将其显示在设备上。我无法提取温度、湿度和 PM 传感器的嵌套值。如何将它们作为单独的键和值获取?

我确实安装了pandas ant并尝试了其他解决方案:

import pandas as pd

url = 'http://192.168.0.117/data.json'
df = pd.read_json(url, orient='columns')

print (df)

import urllib.request, json
with urllib.request.urlopen("http://192.168.0.117/data.json") as url:
    data = json.loads(url.read().decode())
    print (data)

我得到的是一个值列表:

{
  "software_version": "NRZ-2018-123B",
  "age": "28",
  "sensordatavalues": [
    {
      "value_type": "SDS_P1",
      "value": "18.40"
    },
    {
      "value_type": "SDS_P2",
      "value": "10.33"
    },
    {
      "value_type": "temperature",
      "value": "9.50"
    },
    {
      "value_type": "humidity",
      "value": "99.90"
    },
    {
      "value_type": "samples",
      "value": "1753691"
    },
    {
      "value_type": "min_micro",
      "value": "80"
    },
    {
      "value_type": "max_micro",
      "value": "793061"
    },
    {
      "value_type": "signal",
      "value": "-73"
    }
  ]
}

如何将它们作为单独的变量获取?

最佳答案

恭喜你开始使用Python!这是一个很棒的数据分析工具。

butterflyknife 是对的,json_normalize 是一个很好用的工具。

我在本地尝试过:

import urllib.request
import json 
import pandas as pd 
from pandas.io.json import json_normalize 

sample_data = '{"software_version": "NRZ-2018-123B", "age":"28", "sensordatavalues":[{"value_type":"SDS_P1","value":"18.40"},{"value_type":"SDS_P2","value":"10.33"},{"value_type":"temperature","value":"9.50"},{"value_type":"humidity","value":"99.90"},{"value_type":"samples","value":"1753691"},{"value_type":"min_micro","value":"80"},{"value_type":"max_micro","value":"793061"},{"value_type":"signal","value":"-73"}]}'

y = json.loads(sample_data)
y2 = json_normalize(y["sensordatavalues"])

该示例数据现在是 y2,一个如下所示的数据框:

# >>> y2
#      value   value_type
# 0    18.40       SDS_P1
# 1    10.33       SDS_P2
# 2     9.50  temperature
# 3    99.90     humidity
# 4  1753691      samples
# 5       80    min_micro
# 6   793061    max_micro
# 7      -73       signal

关于python - 从嵌套 JSON 文件中提取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56169671/

相关文章:

perl - 为什么我会收到错误 - "Cannot determine file type for '/tmp/test.war'”?

用于提取 Youtube 视频 ID 的 JavaScript 正则表达式

python - 快速解析类似 csv 的文件

python - Django 本地环境设置

python - 如何在 eve-sqlalchemy 中查询嵌套集合中的资源?

javascript - 为什么是 myPlants[1]? JSON

python - 与 Python 类属性一起使用的文档字符串?

json - 如何在 Moodle 中为嵌套 Web 服务创建正确的返回函数

php - json_encode函数在php中数组为空时返回大括号{}

c - 从文件中存储多种类型的数据