作者IFRS ()
看板Python
標題[問題] json檔append轉成dataframe
時間Sat Nov 2 23:56:10 2019
從氣象局抓到josn但是階層頗多
"records": {
"location": [
{
"stationId": "C6S94",
"time": [
{
"obsTime": "2019-11-02 12:00:00",
"weatherElement": [
{
"elementName": "陣風",
"elementValue": "125"
},
{
"elementName": "平均風",
"elementValue": "87"
},
(中略)
"obsTime": "2019-11-02 17:00:00",
"weatherElement": [
{
"elementName": "陣風",
"elementValue": "126"
},
{
"elementName": "平均風",
"elementValue": "88"
},
這個json下每個stationId,還分成不同時間、觀測值(陣風、平均風)
不知道如何轉換成下表
stationId 間時 陣風 平均風
C6S94 12:00 125 87
C6S94 17:00 126 88
新手想一天還是想不出來
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.126.75 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1572710174.A.828.html
※ 編輯: IFRS (27.242.126.75 臺灣), 11/02/2019 23:57:57
1F:推 holishing: 雲一下解法,下pandas json to dataframe或可找到線索? 11/03 01:03
2F:推 Sunal: 這不需用到pandas 11/03 01:30
3F:→ IFRS: 能提示一下嗎? 11/03 09:08
4F:推 TitanEric: 可以給個api網址嗎 11/03 09:59
5F:推 papple23g: json.loads() 可以轉成字典 11/03 14:59
※ 編輯: IFRS (27.242.126.75 臺灣), 11/03/2019 15:05:13
6F:推 s860134: 程式不是用想的 11/03 21:17
因為超過二維,所以提取後.append,再使用pd.DataFrame()
※ 編輯: IFRS (27.242.126.75 臺灣), 11/03/2019 22:22:19
8F:推 ciaoPTT: 你知道他每個站台同一時間有兩個陣風跟平均風跟風向的資 11/04 13:50
9F:→ ciaoPTT: 料嗎? 11/04 13:50
感謝大大願意看一下資料,確實如樓下說,原始資料就是長這樣
這也是困難之一,但我在處理這個問題前的困難是沒辦法解析這麼多層的json
10F:推 TitanEric: 樓上正確 資料本來就長這樣 11/04 22:20
蒙大大兩次推文,能否指點怎把這麼多層資料轉成兩維的DataFrame
(PS:補充資料為何有兩筆,主要是因為一個測站有兩個風速計,所以產生兩筆資料)
※ 編輯: IFRS (39.10.126.222 臺灣), 11/05/2019 13:06:38
※ 編輯: IFRS (39.10.62.60 臺灣), 11/06/2019 10:37:02
※ 編輯: IFRS (39.10.62.60 臺灣), 11/06/2019 10:37:59
11F:推 wargods8402: 會不會提取字典檔? 11/06 19:25
12F:→ s860134: json.loads = dict dict.get(key, {}).get(key,{}).get(. 11/06 21:11
13F:→ s860134: 這個是 dict 的用法,你只是不熟 python 11/06 21:11