import json
filename = "example.json" # see above for how it looks like
with open(filename, 'w') as file_object: # open the file in write mode
json.dump(data, file_object)
example.json 如下所示
{
"myName": "Yves",
"myLastName": "Boutellier",
"hobbies": ["sports", "blogging", "programming"],
"age": 25,
"languages": [
{
"name": "python",
"years": 2.5 },
{
"name": "R",
"years": 2 },
{
"name": "C++",
"years": 1 },
{
"name": "Java",
"years": 1 }
]
}
import json
data = {
"myName": "Yves",
"myLastName": "Boutellier",
"hobbies": ["sports", "blogging", "programming"],
"age": 25,
"languages": [
{
"name": "python",
"years": 2.5 },
{
"name": "R",
"years": 3 },
{
"name": "C++",
"years": 1 },
{
"name": "Java",
"years": 1 }
]
}
JSON_string = json.dumps(data) # converting dictionary to JSON
print(type(JSON_string) == str) # True
同樣,反序列化是將 JSON 數據轉換為原生數據類型的過程。在這裡,我們將 JSON 數據轉換回 Python 中的字典。但是我們必須再次考慮 Python 的轉換表,以便了解可能發生的錯誤。
你看,如果我們對一個元組進行編碼,它就變成了一個數組,一個數組變成了一個列 表。請記住這一點。
接下來,我們要檢查用於反序列化的兩個函數。
json.load(filename)
import json
f = open('example.json', 'r')
data = json.load(f)
print(data)
print(type(data)) # <class 'dict'>
數據來自 example.json 文件並存儲在名為 data 的字典中。
import json
data = {
"myName": "Yves",
"myLastName": "Boutellier",
"hobbies": ["sports", "blogging", "programming"],
"age": 25,
"languages": [
{
"name": "python",
"years": 2.5 },
{
"name": "R",
"years": 3 },
{
"name": "C++",
"years": 1 },
{
"name": "Java",
"years": 1 }
]
}
JSON_string = json.dumps(data) # converting dictionary to JSON
data_dict = json.loads(JSON_string)
print(data == data_dict) # True, since no tuples used
我在介紹中已經提到,在構建自己的 Python 項目試圖獲得數據科學/機器學習工程師的工作時偶然發現了 JSON。我的目標是將我從 API 收集的數據存儲到一個文件中,以便我以後可以將其用於測試。
從 API 接收數據作為 json 字符串是很常見的。通過調用庫, requests 你可以從 API 獲取數據。然後你需要將數據轉換為 python 對象,這可以輕鬆完成, response.json() 無需任何參數即可使用。
import requests
# Making a get request
response = requests.get('https://api.github.com')
data = response.json()
print(type(data)) # <class 'dict'>
現在假設你進行了一些爭論並決定獲取數據的一個子集並希望將其存儲以備後用。你了解到你可以使用 json.dump(data, filename) 它並在以後使用它。
本文介紹了如何以一種可以用許多其他語言普遍管理的方式來存儲數據、在哪裡查找轉換表,並且你看到了一些示例,你可以毫不費力地更改這些示例,以便它們對你自己的需求有用。我總結了以下4點的關鍵工作流程步驟。
1. 導入 json 包
2. 使用 json.load(JSON_string) 或讀取數據 json.loads(filename)
3. 處理數據
4. 使用 dump(data, filename) 或寫入更改的數據 dumps(data)
本文轉載來自:https://towardsdatascience.com/working-with-json-data-in-python-45e25ff958ce