---
# System prepended metadata

title: Python - Day 7
tags: [Python]

---

# Python - Day 7
###### tags: `Python`

## 網路連線

### 下載特定網址資料
1. 類似檔案操作
2. 需要開啟與關閉
3. 因此語法與(File IO)類似

```python=
import urllib.request as request
import json
import ssl

context = ssl._create_default_https_context = ssl._create_unverified_context #解決該網站ssl認證的問題

src = ("https://www.ntu.edu.tw/")
with request.urlopen(src) as response:
   data = response.read().decode("UTF-8") #取得台灣大學網站原始碼,並且以UTF8處理中文字
print ( data )
```

### 步驟
1. 需要 『公開資料』
2. 找尋適合的資料來源
3. 確認資料格式
4. 解讀資料

```python=
import urllib.request as request
import json
import ssl
context = ssl._create_default_https_context = ssl._create_unverified_context

src = "https://data.taipei/api/v1/dataset/296acfa2-5d93-4706-ad58-e83cc951863c?scope=resourceAquire"
with request.urlopen(src) as response:
   data = json.load(response)
   print ( data )
```

5. 整理資料

```python=
from multiprocessing import context
import urllib.request as request
import json
import ssl
context = ssl._create_default_https_context = ssl._create_unverified_context

src = "https://data.taipei/api/v1/dataset/296acfa2-5d93-4706-ad58-e83cc951863c?scope=resourceAquire"
with request.urlopen(src) as response:
   data = json.load(response) #用json module 讀取資料
clist = data["result"]["results"] #格式是從json碼來的 ( key 'result' 中的 value 中的 key 'results' 中的 value(公司資訊) )
#print ( clist )
for company in clist :
   print ( company["公司名稱"] ) #"公司名稱"為一字典的key
```

6. 寫入檔案
```python=
from multiprocessing import context
import urllib.request as request
import json
import ssl
context = ssl._create_default_https_context = ssl._create_unverified_context

src = "https://data.taipei/api/v1/dataset/296acfa2-5d93-4706-ad58-e83cc951863c?scope=resourceAquire"
with request.urlopen(src) as response:
   data = json.load(response) #用json module 讀取資料
clist = data["result"]["results"] #格式是從json碼來的 ( key 'result' 中的 value 中的 key 'results' 中的 value(公司資訊) )
#print ( clist )
with open( "output.txt" , "w" , encoding = "UTF-8" ) as out : #以UTF-8編碼處理檔案的中文字
   for company in clist :
      out.write ( company["公司名稱"] )
      out.write ( "\n" )
```