簡體   English   中英

從嵌套的JSON文件中提取值

[英]Extracting values from a nested JSON file

我正在嘗試從空氣質量傳感器中提取值,以將其顯示在設備上。 我無法提取溫度,濕度和PM傳感器的嵌套值。 如何獲得它們作為單獨的鍵和值?

我確實安裝了熊貓螞蟻,嘗試了其他解決方案:

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"
    }
  ]
}

如何獲得它們作為單獨的變量?

您需要先將json展平,然后再將其讀入pandas。 json_normalize似乎正是您所需要的。 這是一個教程:

https://www.kaggle.com/jboysen/quick-tutorial-flatten-nested-json-in-pandas

恭喜您開始使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM