More Related Content
Similar to Python vs json 玩open data (20)
Python vs json 玩open data
- 5. 學習程式的歷程
學生時期:打電動,沒有日夜的界限
二專畢業:初次接觸 dBase、Lotus 使用 Clipper 做經銷存、應收付帳系統
工作階段1:接觸 Office,開始使用Excel(Lotus)
工作階段2:品保工作,自學圖表、函數、VBA,做出自動化品管系統
興趣展開:自學VB,製作ERP系統,接觸Linux、FreeBSD,自學架設Server
諸葛魔斌誕生
大學時期:半自學 Android App(Java)、C#、iOS App(Swift)
工作轉變:成立諸葛魔斌科技創作室,接案學習,救國團電腦資訊講師
實績:
- 10. { "firstName": "John", "lastName": "Smith", "sex": "male", "age": 25, "address": {
"streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": "10021"
}, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax",
"number": "646 555-4567" } ] }
[ { "text":"This is the
text","color":"dark_red","bold":"true","strikethough":"true","clickEvent":
{"action":"open_url","value":"zh.wikipedia.org"}, "hoverEvent":
{"action":"show_text","value": {"extra":"something"} } }, {
"translate":"item.dirt.name","color":"blue","italic":"true" } ]
Python vs Json 玩OpenData
- 11. Python vs Json 玩OpenData
語法
參考前次課程彙整的資料
http://www.slideshare.net/ssuser1f2dfd/python-68494493
- 12. Python vs Json 玩OpenData
實作
1. Python 讀取 Json 文字檔
2. Python 讀取存於網頁上之 Json 文字檔
3. Python 讀取存於網頁上之 Json 內容
4. Python 存取 FireBase
查詢、新增、取代、刪除
5. Python 讀取 Open Data 之 Json 存入 FireBase
- 16. Python 讀取 Json 文字檔
1. 建立 Json 檔案 (camera.json)
2. Python 程式 (camera.py)
import json # 載入 json
## 1. 讀取"camera.json",並把它轉成"object”
open_file = open('camera.json', 'r', encoding = 'utf-8') # 將讀取編碼設為"utf-8”
tmp_files = open_file.read()
input_data = json.loads(tmp_files) # 把 json 檔案改成 object
open_file.close() # 關閉檔案
## 2. 提示使用者輸入欲查詢的路名(要用中文)
# 讓使用者輸入資料
user_input = input('Please use chinese to enter road name in Kaohsiung :')
# 過濾資料
user_input = user_input.replace('路', '')
Python vs Json 玩OpenData
- 17. Python 讀取 Json 文字檔
## 3. 在查詢結果前,在螢幕上顯示"項目意義”
print('行政區t測照方向t測照地點')
print('*' * 50) # 用來產生分隔線
## 4. 查詢輸入的資料
for data in input_data: # 依照資料的筆數("input_data")進行迴圈
# 判斷資料裡面是否有我們要找的東西
if user_input in data['測照地點']:
print('%st%stt%s' % (data['行政區'], data['測照方向'], data['測照地點']))
Python vs Json 玩OpenData
- 18. Python 讀取存於網頁上之 Json 文字檔
1. 存放 Json 檔在網頁上
http://203.64.91.58/camera.json
2. Python 程式 (camera1.py)
import json
import requests
r=requests.get('http://203.64.91.58/camera.json')
r.json()
json_obj = json.loads(r.text)
user_input = input('高雄市區監視器分佈位置查詢(請輸入路名):')
user_input = user_input.replace('路', '')
Python vs Json 玩OpenData
- 19. Python 讀取存於網頁上之 Json 文字檔
print('行政區t測照方向t測照地點')
print('*' * 50) # 用來產生分隔線
for obj in json_obj:
if user_input in obj['測照地點']:
print('%st%stt%s' % (obj['行政區'], obj['測照方向'], obj['測照地點']) )
Python vs Json 玩OpenData
- 20. Python 讀取存於網頁上之 Json 內容
1. 選擇 OpenData 網頁。
https://data.kaohsiung.gov.tw/opendata/DownLoad.aspx?Type=2&CaseNo1=AG&CaseNo2=
31&FileType=2&Lang=C&FolderType=O
將 https 改為 http
http://data.kaohsiung.gov.tw/opendata/DownLoad.aspx?Type=2&CaseNo1=AG&CaseNo2=3
1&FileType=2&Lang=C&FolderType=O
2. Python 程式 (water.py)
import json
import requests
url =
'http://data.kaohsiung.gov.tw/opendata/DownLoad.aspx?Type=2&CaseNo1=AG&CaseNo2=
31&FileType=2&Lang=C&FolderType=O'
Python vs Json 玩OpenData
- 21. Python 讀取存於網頁上之 Json 內容
r=requests.get(url)
r.json()
json_obj = json.loads(r.text)
user_input = input('高雄市區加水站地址位置查詢(請輸入行政區):')
user_input = user_input.replace('區', '')
print('加水站名稱tt加水站地址tt聯絡電話')
print('='* 50 )
for obj in json_obj:
if user_input in obj['加水站地址']:
print('%st%st%s' % (obj['加水站名稱'], obj['加水站地址'], obj['聯絡電話']) )
Python vs Json 玩OpenData
- 22. Python 存取 FireBase 之 查詢、新增、取代、刪除
1. FireBase Database 設置/建立可參考
http://www.slideshare.net/ssuser1f2dfd/ios-swift-firebase
http://www.slideshare.net/ssuser1f2dfd/android-amp-fire-base
2. 安裝 python-firebase
sudo pip install python-firebase
3. Python 程式 (使用 jupyter notebook)
Python vs Json 玩OpenData
- 23. Python 存取 FireBase 之 查詢、新增、取代、刪除
查詢:
from firebase import firebase
firebase = firebase.FirebaseApplication('https://twcts-iapp.firebaseio.com/', None)
result = firebase.get('/myfbapp', None)
print(result)
from firebase import firebase
firebase = firebase.FirebaseApplication('https://twcts-iapp.firebaseio.com/', None)
result = firebase.get('/myfbapp', 1)
print(result)
Python vs Json 玩OpenData
- 24. Python 存取 FireBase 之 查詢、新增、取代、刪除
新增:
from firebase import firebase
firebase = firebase.FirebaseApplication('https://twcts-iapp.firebaseio.com', None)
data = [{'name': 'KKK'}]
result = firebase.put('/myfbapp','2' , data)
print(result)
Python vs Json 玩OpenData
- 25. Python 存取 FireBase 之 查詢、新增、取代、刪除
取代:
from firebase import firebase
firebase = firebase.FirebaseApplication('https://twcts-iapp.firebaseio.com', None)
data = [{'name': 'JJJ'}]
firebase.put('/myfbapp','2' , data)
result = firebase.get('/myfbapp', 2)
print(result)
Python vs Json 玩OpenData
- 26. Python 存取 FireBase 之 查詢、新增、取代、刪除
刪除:
from firebase import firebase
firebase = firebase.FirebaseApplication('https://twcts-iapp.firebaseio.com', None)
firebase.delete('/myfbapp/2', None)
result = firebase.get('/myfbapp', None)
print(result)
Python vs Json 玩OpenData
- 27. Python vs Json 玩OpenData
Python 讀取 Open Data 之 Json 存入 FireBase
1. 選擇 OpenData 網頁。
https://data.kaohsiung.gov.tw/opendata/DownLoad.aspx?Type=2&CaseNo1=AG&CaseNo2=
31&FileType=2&Lang=C&FolderType=O
將 https 改為 http
http://data.kaohsiung.gov.tw/opendata/DownLoad.aspx?Type=2&CaseNo1=AG&CaseNo2=3
1&FileType=2&Lang=C&FolderType=O
2. Python 程式 (water_firebase.py)
from firebase import firebase
import json
import requests
- 28. Python vs Json 玩OpenData
Python 讀取 Open Data 之 Json 存入 FireBase
url =
'http://data.kaohsiung.gov.tw/opendata/DownLoad.aspx?Type=2&CaseNo1=AG&CaseNo2=
31&FileType=2&Lang=C&FolderType=O’
r=requests.get(url)
r.json()
json_obj = json.loads(r.text)
i = 0
firebase = firebase.FirebaseApplication('https://twcts-iapp.firebaseio.com', None)
for obj in json_obj:
data = [{'加水站名稱': obj['加水站名稱']}, {'加水站地址': obj['加水站地址']}, {'聯絡電話': obj['聯絡
電話']}]
result = firebase.put('/myfbapp', str(i) , data)
i+=1
print(result)
- 29. Python vs Json 玩OpenData
Python 讀取 Open Data 之 Json 存入 FireBase
欄位整併(Part 2)
from firebase import firebase
import json
import requests
url =
'http://data.kaohsiung.gov.tw/opendata/DownLoad.aspx?Type=2&CaseNo1=AG&CaseNo2=
31&FileType=2&Lang=C&FolderType=O’
r=requests.get(url)
r.json()
json_obj = json.loads(r.text)
- 30. Python vs Json 玩OpenData
Python 讀取 Open Data 之 Json 存入 FireBase
i = 0
firebase = firebase.FirebaseApplication('https://twcts-iapp.firebaseio.com', None)
for obj in json_obj:
data = [{'加水站名稱': obj['加水站名稱'], '加水站地址': obj['加水站地址'], '聯絡電話': obj['聯絡電
話']}]
result = firebase.put('/myfbapp', str(i) , data)
i+=1
print(result)
- 31. Python vs Json 玩OpenData
結論
後續
可以開發 (1) Python & Firebase 整合應用
(2) 物聯網控制和資料存取