json

### JSON其實還是文本,長得像字典的文本
# https://www.json.org/.json-zh.html
# 完全獨立於語言的文本格式
"""
https://www.json.org/json-zh.html
JSON建構於兩種結構:
“名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解爲對象(object),紀錄(record),結構(struct),字典(dictionary),哈希表(hash table),有鍵列表(keyed list),或者關聯數組 (associative array)。 
值的有序列表(An ordered list of values)。在大部分語言中,它被理解爲數組(array)。 
這些都是常見的數據結構。事實上大部分現代計算機語言都以某種形式支持它們。這使得一種數據格式在同樣基於這些結構的編程語言之間交換成爲可能。
JSON具有以下這些形式:
對象是一個無序的“‘名稱/值’對”集合。一個對象以“{”(左括號)開始,“}”(右括號)結束。每個“名稱”後跟一個“:”(冒號);“‘名稱/值’ 對”之間使用“,”(逗號)分隔。 

數組是值(value)的有序集合。一個數組以“[”(左中括號)開始,“]”(右中括號)結束。值之間使用“,”(逗號)分隔。 

值(value)可以是雙引號括起來的字符串(string)、數值(number)、true、false、 null、對象(object)或者數組(array)。這些結構可以嵌套。 

字符串(string)是由雙引號包圍的任意數量Unicode字符的集合,使用反斜線轉義。一個字符(character)即一個單獨的字符串(character string)。 
字符串(string)與C或者Java的字符串非常相似。 

數值(number)也與C或者Java的數值非常相似。除去未曾使用的八進制與十六進制格式。除去一些編碼細節。

空白可以加入到任何符號之間。 以下描述了完整的語言

"""
import json
cd D:\全棧\json api
D:\全棧\json api
# 寫json文件
d = {'name':'coop', 'city':'beijing','money':'100wan'}
with open('test.json', 'w') as f:
    json.dump(d, f)
# 讀json文件
with open('test.json', 'r') as f:
    d = json.load(f)
    print(type(d))
    print(d)
<class 'dict'>
{'name': 'coop', 'city': 'beijing', 'money': '100wan'}
# dict -> json  字典轉化爲json:::json.dumps(d)
print(json.dumps(d))  # 變成雙引號,標準化  json.dumps
print(d)
{"name": "coop", "city": "beijing", "money": "100wan"}
{'name': 'coop', 'city': 'beijing', 'money': '100wan'}
# json --> dict  json轉化爲dict:::json.loads(json)
s ='{"name": "coop", "city": "beijing", "money": "100wan"}'
dic = json.loads(s)
print(json.loads(s))
print(s)
{'name': 'coop', 'city': 'beijing', 'money': '100wan'}
{"name": "coop", "city": "beijing", "money": "100wan"}
# 美化輸出
print(json.dumps(dic, indent=4, separators=(',',':')))
# 兩個參數,indent, separators
{
    "name":"coop",
    "city":"beijing",
    "money":"100wan"
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章