51.md 1.2 KB
Newer Older
W
init  
wizardforcel 已提交
1 2 3 4 5 6 7 8 9 10
# JSON 和 python

> 原文: [https://pythonbasics.org/json/](https://pythonbasics.org/json/)

了解如何使用 python 解析 JSON 对象。

JavaScript Object Notation(JSON)是一种数据交换格式。 虽然最初是为 JavaScript 设计的,但如今,许多计算机程序都与 Web 交互并使用 JSON。

与网络的交互通常是通过 JSON 格式的 API(应用程序可编程接口)完成的。

W
wizardforcel 已提交
11

W
init  
wizardforcel 已提交
12 13 14 15 16 17 18 19 20

## python JSON 示例

### 解析 JSON

您可以使用 python 解析 JSON 对象。 然后,该对象将转换为 python 对象。

首先创建一个 json 对象

W
wizardforcel 已提交
21
```py
W
init  
wizardforcel 已提交
22 23 24 25 26 27 28 29
{
 "gold": 1271,
 "silver": 1284,
 "platinum": 1270
}

```

W
wizardforcel 已提交
30
之后像这样解析 JSON 对象:
W
init  
wizardforcel 已提交
31

W
wizardforcel 已提交
32
```py
W
init  
wizardforcel 已提交
33 34 35 36 37 38 39 40
import json
obj = json.loads('{"gold": 1271,"silver": 1284,"platinum": 1270}')
print(obj['gold'])

```

### 从 URL 解析 JSON

W
wizardforcel 已提交
41
您可以直接从网络上获取 JSON 对象,并将其转换为 python 对象。 这是通过 API 端点完成的
W
init  
wizardforcel 已提交
42

W
wizardforcel 已提交
43
```py
W
init  
wizardforcel 已提交
44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
import json
import urllib.request

# download raw json object
url = "https://api.gdax.com/products/BTC-EUR/ticker"
data = urllib.request.urlopen(url).read().decode()

# parse json object
obj = json.loads(data)

# output some object attributes
print('$ ' + obj['price'])
print('$ ' + obj['volume'])

```