Mta python bãi

JSON [ký hiệu đối tượng JavaScript], được chỉ định bởi RFC 7159 [trong đó lỗi thời RFC 4627] và bởi ECMA-404, là một định dạng trao đổi dữ liệu nhẹ nhàng lấy cảm hứng từ Cú pháp đối tượng JavaScript [mặc dù nó không . RFC 7159 [đã lỗi thời RFC 4627] và bởi ECMA-404, là một định dạng trao đổi dữ liệu nhẹ lấy cảm hứng từ cú pháp ký tự đối tượng JavaScript [mặc dù nó không phải là tập hợp con nghiêm ngặt của JavaScript 1 ]

Cảnh báo

Hãy lưu ý khi phân tích dữ liệu JSON từ các nguồn không tin cậy. Một chuỗi JSON độc hại có thể tạo ra bộ giải mã tiêu thụ CPU và bộ nhớ tài nguyên đáng kể. Giới hạn kích thước của dữ liệu được phân tích cú pháp được khuyến nghị

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
4 API phơi bày quen thuộc với người dùng của thư viện tiêu chuẩn ______05 và
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
6

Mã hóa phân cấp đối tượng Python cơ bản

>>> import json
>>> json.dumps[['foo', {'bar': ['baz', None, 1.0, 2]}]]
'["foo", {"bar": ["baz", null, 1.0, 2]}]'
>>> print[json.dumps["\"foo\bar"]]
"\"foo\bar"
>>> print[json.dumps['\u1234']]
"\u1234"
>>> print[json.dumps['\\']]
"\\"
>>> print[json.dumps[{"c": 0, "b": 0, "a": 0}, sort_keys=True]]
{"a": 0, "b": 0, "c": 0}
>>> from io import StringIO
>>> io = StringIO[]
>>> json.dump[['streaming API'], io]
>>> io.getvalue[]
'["streaming API"]'

Minimalization code

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'

trong đẹp

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}

JSON code

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']

Chuyên giải mã các đối tượng JSON

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']

Open width

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
7.
>>> import json
>>> class ComplexEncoder[json.JSONEncoder]:
..     def default[self, obj]:
..         if isinstance[obj, complex]:
..             return [obj.real, obj.imag]
..         # Let the base class default method raise the TypeError
..         return json.JSONEncoder.default[self, obj]
...
>>> json.dumps[2 + 1j, cls=ComplexEncoder]
'[2.0, 1.0]'
>>> ComplexEncoder[].encode[2 + 1j]
'[2.0, 1.0]'
>>> list[ComplexEncoder[].iterencode[2 + 1j]]
['[2.0', ', 1.0', ']']

Use

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
8 từ vỏ để xác thực và đẹp.
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
1

Xem giao diện dòng lệnh để biết tài liệu chi tiết. Giao diện dòng lệnh để biết tài liệu chi tiết.

Ghi chú

JSON is an file con of YAML 1. 2. JSON được sản xuất bởi các cài đặt mặc định của mô-đun này [đặc biệt là giá trị phân tách mặc định] cũng là một tập hợp con của YAML 1. 0 và 1. 1. Do đó, mô-đun này cũng có thể được sử dụng như một bộ tuần tự YAML

Ghi chú

JSON is an file con of YAML 1. 2. JSON được sản xuất bởi các cài đặt mặc định của mô-đun này [đặc biệt là giá trị phân tách mặc định] cũng là một tập hợp con của YAML 1. 0 và 1. 1. Do đó, mô-đun này cũng có thể được sử dụng như một bộ tuần tự YAML

Bộ mã hóa và bộ giải mã mô-đun này tồn tại thứ tự đầu vào và khởi động theo mặc định. Thứ tự chỉ bị mất nếu các thùng chứa cơ bản không được đặt hàng

Cách sử dụng cơ bảndump[obj , fp, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw]

json. dump [obj, fp, *, skipKeys = false, chắc chắn_ascii = true, kiểm tra_circular = true ¶ đối tượng dạng tệp ] bằng cách sử dụng conversion table.

Nối tiếp OBJ thành luồng được định dạng JSON thành FP [một đối tượng giống như tệp 19 được hỗ trợ] bằng cách sử dụng bảng chuyển đổi này

If SkipKeys is true [default

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
0], thì các từ khóa Dict không thuộc loại cơ bản [
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
1,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
2,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
3,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
4,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
5] sẽ bị loại bỏ do tăng
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6

mô-đun

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
4 luôn tạo các đối tượng
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
1, không phải đối tượng
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
9. Làm điều đó,
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
0 phải hỗ trợ đầu vào
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
1

Nếu chắc chắn_ascii là đúng [mặc định], đầu ra được đảm bảo sẽ có tất cả các ký tự không phải ASCII đến thoát. If chắc chắn_ascii là sai, các ký tự này sẽ được xuất ra

If Check_Circular is invalid [default

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
2], thì kiểm tra tham chiếu vòng cho các loại vùng chứa sẽ bị loại bỏ và vòng tham chiếu sẽ dẫn đến
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
3 [hoặc tệ hơn]

If allow_nan is bad [default

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
2], thì đó sẽ là một
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
5 để tuần tự hóa ra khỏi phạm vi
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
3 giá trị [
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
7,
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
8,
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
9] chấp hành thủ nghiêm ngặt thông số kỹ thuật của JSON. If allow_nan is true, JavaScript tương đương của chúng [
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
0,
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
1,
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
2] sẽ được sử dụng

Nếu thụt lề là một số nguyên hoặc chuỗi không âm, thì các phần tử JSON và các đối tượng thành viên sẽ khá đẹp với mức thụt lề đó. Receptor into 0, sound or

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
3 will only insert new lines.
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
5 [mặc định] chọn biểu tượng thu gọn nhất. Sử dụng một số nguyên tích cực tích cực chỉ ra rằng nhiều không gian trên mỗi cấp độ. Nếu thụt lề là một chuỗi [không có hạn như
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
5], chuỗi đó được sử dụng để thụt vào mỗi cấp độ. Cho phép chuỗi thụt lề ngoài số nguyên

Changed in version 3. 2. Cho phép các chuỗi đối với lề bên ngoài số nguyên

Nếu chỉ được định nghĩa, các dấu phân cách phải là một bộ

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
6. Default is
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
7 if not thụt lề là
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
5 và
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
9 if not. Để có được biểu diễn JSON nhỏ gọn nhất, bạn nên chỉ định_______90 để loại bỏ khoảng trắng. Sử dụng
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
9 làm mặc định nếu thụt lề không phải là_______55

Changed in version 3. 4. Use

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
9 làm mặc định nếu thụt lề không phải là
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
5

If are only, default must be a function is call for the objects can may beTuần hóa. Nó sẽ trả về một phiên bản có thể mã hóa JSON của đối tượng hoặc tăng cường

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6. Nếu không được chỉ định,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6 được nâng cấp

If sort_keys is true [default

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
0], thì đầu ra của từ điển sẽ được sắp xếp theo từ khóa

Để sử dụng một lớp con tùy chỉnh ____17 [ví dụ. override method over layer

>>> import json
>>> class ComplexEncoder[json.JSONEncoder]:
..     def default[self, obj]:
..         if isinstance[obj, complex]:
..             return [obj.real, obj.imag]
..         # Let the base class default method raise the TypeError
..         return json.JSONEncoder.default[self, obj]
...
>>> json.dumps[2 + 1j, cls=ComplexEncoder]
'[2.0, 1.0]'
>>> ComplexEncoder[].encode[2 + 1j]
'[2.0, 1.0]'
>>> list[ComplexEncoder[].iterencode[2 + 1j]]
['[2.0', ', 1.0', ']']
7 to week self-hóa các loại bổ sung], chỉ định nó với CLS KWARG; . Tất cả các tham số tùy chọn giờ đây chỉ dành cho từ khóa .

Ghi chú

JSON is an file con of YAML 1. 2. JSON được sản xuất bởi các cài đặt mặc định của mô-đun này [đặc biệt là giá trị phân tách mặc định] cũng là một tập hợp con của YAML 1. 0 và 1. 1. Do đó, mô-đun này cũng có thể được sử dụng như một bộ tuần tự YAML

Bộ mã hóa và bộ giải mã mô-đun này tồn tại thứ tự đầu vào và khởi động theo mặc định. Thứ tự chỉ bị mất nếu các thùng chứa cơ bản không được đặt hàng. kết xuất[obj , *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, cls=None, indent=None, separators=None, default=None, sort_keys=False, **kw]

Cách sử dụng cơ bản bảng chuyển đổi . Các đối số có cùng ý nghĩa như trong

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
11

Ghi chú

JSON is an file con of YAML 1. 2. JSON được sản xuất bởi các cài đặt mặc định của mô-đun này [đặc biệt là giá trị phân tách mặc định] cũng là một tập hợp con của YAML 1. 0 và 1. 1. Do đó, mô-đun này cũng có thể được sử dụng như một bộ tuần tự YAML

json. tải [fp, *, cls = none, object_hook = none, parse_float = none, parse_int = none, parse_constant = none, object_pairs_hook = none, ** kw] ¶tải[fp, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]

Deserialize FP [tệp văn bản hoặc tệp nhị phân hỗ trợ ____ 66 có chứa tài liệu JSON] đến các đối tượng Python bằng cách sử dụng bảng chuyển đổi này. tệp văn bản hoặc tệp nhị phân chứa tài liệu JSON] vào đối tượng Python . conversion table.

Object_hook là một tùy chọn chức năng sẽ được gọi với kết quả của bất kỳ đối tượng nào được giải mã theo nghĩa đen [A

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
17]. Giá trị hoàn trả của Object_hook sẽ được sử dụng thay vì
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
17. Tính năng này có thể được sử dụng để phát triển bộ giải mã tùy chỉnh khai thác [ví dụ:. gợi ý lớp JSON-RPC]

Object_Pairs_hook là một tùy chọn chức năng sẽ được gọi dựa trên kết quả của bất kỳ đối tượng nào được giải mã với một danh sách các cặp được đặt hàng. Giá trị hoàn trả của Object_Pairs_hook sẽ được sử dụng thay vì

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
17. Tính năng này có thể được sử dụng để thực hiện bộ giải mã tùy chỉnh. Nếu Object_hook cũng được xác định, thì Object_Pairs_hook được ưu tiên

Đã thay đổi trong phiên bản 3. 1. Đã hỗ trợ thêm cho Object_Pairs_Hook. Đã thêm hỗ trợ cho object_pairs_hook.

parse_float, nếu được định nghĩa chỉ, sẽ được gọi với chuỗi của mỗi float JSON để được giải mã. Theo mặc định, điều này tương đương với

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
60. Điều này có thể được sử dụng để sử dụng một kiểu dữ liệu hoặc một trình phân tích cú pháp khác cho các float JSON [ví dụ:.
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
61]

Parse_int, nếu được định nghĩa chỉ, sẽ được gọi với chuỗi của mỗi int JSON sẽ được giải mã. Theo mặc định, điều này tương đương với

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
62. Điều này có thể được sử dụng để sử dụng một kiểu dữ liệu hoặc một trình phân tích cú pháp khác cho JSON nguyên số [ví dụ:.
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
3]

Changed in version 3. 11. Parse_int default of

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
64 Bây giờ giới hạn độ dài tối đa của chuỗi số nguyên thông qua giới hạn độ dài chuyển đổi chuỗi số nguyên của trình thông dịch để giúp tránh từ chối các cuộc tấn công dịch vụ. parse_int mặc định của
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
64 hiện giới hạn độ dài tối đa của chuỗi số nguyên thông qua giới hạn độ dài chuyển đổi chuỗi số nguyên của trình thông dịch để giúp tránh các cuộc tấn công từ chối dịch vụ.

parse_constant, if are only, will be call with a in the following string

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
65,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
66,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
67. Điều này có thể được sử dụng để tăng một ngoại lệ nếu số JSON không hợp lệ

Đã thay đổi trong phiên bản 3. 1. parse_constant không được gọi trên ‘null, ‘true, ’ sai nữa. parse_constant không còn được gọi trên 'null', 'true', 'false' nữa.

Để sử dụng lớp con tùy chỉnh ____78, chỉ định nó với

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
69 kwarg; . Các đối số từ khóa bổ sung sẽ được chuyển cho hàm tạo của lớp

Nếu dữ liệu được khử trùng lặp không phải là một JSON tài liệu hợp lệ, một

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
71 sẽ được nêu ra

Đã thay đổi trong phiên bản 3. 6. Tất cả các tham số tùy chọn chỉ có từ khóa. Tất cả các tham số tùy chọn giờ đây chỉ từ khóa .

Đã thay đổi trong phiên bản 3. 6. FP show could be a binary file. Mã hóa đầu vào phải là UTF-8, UTF-16 hoặc UTF-32. fp hiện có thể là tệp nhị phân . Mã hóa đầu vào phải là UTF-8, UTF-16 hoặc UTF-32.

json. tải [s, *, cls = none, object_hook = none, parse_float = none, parse_int = none, parse_constant = nonetải[s, *, cls=None, object_hook=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw]

Khử lưu huỳnh S [A

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
1,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
9 or
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
74 has contains tài liệu JSON] đến các đối tượng Python bằng cách sử dụng bảng chuyển đổi này. bảng chuyển đổi .

Các đối số khác nhau có ý nghĩa tương tự như trong

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
75

Nếu dữ liệu được khử trùng lặp không phải là một JSON tài liệu hợp lệ, một

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
71 sẽ được nêu ra

Đã thay đổi trong phiên bản 3. 6. Tất cả các tham số tùy chọn chỉ có từ khóa. s hiện có thể thuộc loại

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
9 hoặc
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
74. Mã hóa đầu vào phải là UTF-8, UTF-16 hoặc UTF-32

Đã thay đổi trong phiên bản 3. 6. FP show could be a binary file. Mã hóa đầu vào phải là UTF-8, UTF-16 hoặc UTF-32. Mã hóa đối số từ khóa đã bị xóa.

json. tải [s, *, cls = none, object_hook = none, parse_float = none, parse_int = none, parse_constant = none

Dezerialize S [A
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
1,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
9 or
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
74 có chứa tài liệu JSON] đến các đối tượng Python bằng cách sử dụng bảng chuyển đổi này.
json. JSONDecoder[* , object_hook=None, parse_float=None, parse_int=None, parse_constant=None, strict=True, object_pairs_hook=None]

Các đối số khác nhau có ý nghĩa tương tự như trong

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
75

Changed in version 3. 6. S HIỆN CÓ THỂ THUỘC LOẠI

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
9 hoặc
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
74. Mã hóa đầu vào phải là UTF-8, UTF-16 hoặc UTF-32

Change in version 3. 9. Mã hóa đối số từ khóa đã bị xóa

Bộ mã hóa và bộ giải mã

lớpjson. jsondecoder [*, object_hook = none, parse_float = none, parse_int = none, parse_constant = none, nghiêm ngặt = true

Bộ giải mã JSON đơn giản

Thực hiện các bản dịch sau trong giải mã theo mặc định

Json

con trăn

sự vật

DIGN

int

mảng

trôi nổi

thật

danh sách

sai

dây cáp

vô giá trị

str

Number [int]

number [thực tế]

ĐÚNG VẬY

Đã thay đổi trong phiên bản 3. 1. Đã hỗ trợ thêm cho Object_Pairs_Hook. Đã thêm hỗ trợ cho object_pairs_hook.

parse_float, nếu được định nghĩa chỉ, sẽ được gọi với chuỗi của mỗi float JSON để được giải mã. Theo mặc định, điều này tương đương với

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
60. Điều này có thể được sử dụng để sử dụng một kiểu dữ liệu hoặc một trình phân tích cú pháp khác cho các float JSON [ví dụ:.
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
61]

Parse_int, nếu được định nghĩa chỉ, sẽ được gọi với chuỗi của mỗi int JSON sẽ được giải mã. Theo mặc định, điều này tương đương với

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
62. Điều này có thể được sử dụng để sử dụng một kiểu dữ liệu hoặc một trình phân tích cú pháp khác cho JSON nguyên số [ví dụ:.
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
3]

parse_constant, if are only, will be call with a in the following string

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
65,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
66,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
67. Điều này có thể được sử dụng để tăng một ngoại lệ nếu số JSON không hợp lệ

Nếu nghiêm trọng là sai [

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
2 is default], thì các ký tự điều khiển sẽ được phép bên trong chuỗi. Các ký tự điều khiển trong bối cảnh này là các ký tự có mã ký tự trong phạm vi 0 Ném31, bao gồm
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
03 [tab],
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
04,
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
05 và
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
06

Nếu dữ liệu được khử trùng lặp không phải là một JSON tài liệu hợp lệ, một

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
71 sẽ được nêu ra

Đã thay đổi trong phiên bản 3. 6. Tất cả các tham số hiện chỉ có từ khóa. Tất cả các tham số hiện tại chỉ từ khóa .

[Các] giải mã[s] ¶>> import json >>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]] { "4": 5, "6": 7 } 1 chứa tài liệu JSON].
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
71 sẽ được nêu ra nếu tài liệu JSON đã cho không hợp lệ. Raw_Decode [S][s]

Giải mã tài liệu JSON từ S [A

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
1 bắt đầu bằng tài liệu JSON] và trả về 2-Tuple của biểu tượng Python và chỉ mục trong Nơi tài liệu kết thúc

Điều này có thể được sử dụng để giải mã JSON tài liệu từ một chuỗi có thể có dữ liệu không liên quan ở cuối

classjson. jsonencoder [*, skipKeys = false, chắc chắn_ascii = true, kiểm tra_circular = truejson. Bộ mã hóa JSON[* , bỏ qua phím=False, ensure_ascii=True, check_circular=True, allow_nan=True, sort_keys=False, indent=None, separators=None, default=None]

Bộ mã hóa JSON mở rộng cho cấu trúc dữ liệu Python

Hỗ trợ các đối tượng và loại sau theo mặc định

con trăn

Json

DIGN

sự vật

Danh sách, tuple

mảng

str

dây cáp

int, float, int- & float có nguồn gốc từ

con số

ĐÚNG VẬY

thật

Sài

sai

không có

vô giá trị

Đã thay đổi trong phiên bản 3. 4. Đã thêm hỗ trợ cho các lớp Enum có nguồn gốc từ INT và float. Đã thêm hỗ trợ cho các lớp Enum có nguồn gốc int và float.

Để mở rộng điều này để nhận biết các đối tượng khác, lớp con và thực hiện phương thức

>>> import json
>>> class ComplexEncoder[json.JSONEncoder]:
..     def default[self, obj]:
..         if isinstance[obj, complex]:
..             return [obj.real, obj.imag]
..         # Let the base class default method raise the TypeError
..         return json.JSONEncoder.default[self, obj]
...
>>> json.dumps[2 + 1j, cls=ComplexEncoder]
'[2.0, 1.0]'
>>> ComplexEncoder[].encode[2 + 1j]
'[2.0, 1.0]'
>>> list[ComplexEncoder[].iterencode[2 + 1j]]
['[2.0', ', 1.0', ']']
7 với một phương thức khác trả về một đối tượng có thể nối tiếp cho
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
12 nếu có thể, nếu không, nó nên gọi quá trình phát triển khai thác các lớp [để tăng
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6]

If SkipKeys is bad [default],

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6 sẽ được nâng lên khi cố gắng mã hóa các khóa không phải là
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
1,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
2,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
3 hoặc_______55. Nếu SkipKeys là đúng, các mục như vậy chỉ đơn giản là bỏ qua

Nếu chắc chắn_ascii là đúng [mặc định], đầu ra được đảm bảo sẽ có tất cả các ký tự không phải ASCII đến thoát. If chắc chắn_ascii là sai, các ký tự này sẽ được xuất ra

Nếu Check_circular là đúng [mặc định], thì các danh sách, chính tả và các đối tượng được mã hóa tùy chỉnh sẽ được kiểm tra các vòng tham chiếu trong quá trình mã hóa để ngăn chặn các quy định vô hạn [sẽ gây ra

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
3]. Nếu không, không có kiểm tra như vậy diễn ra

If allow_nan is true [default], thì

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
0,
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
1 và__
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
2 sẽ được mã hóa như vậy. Hành vi này không phải là thủ thuật mô tả JSON, nhưng phù hợp với hầu hết các bộ mã hóa và bộ giải mã dựa trên JavaScript. Nếu không, nó sẽ là một
>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
5 để mã hóa những chiếc phao như vậy

If sort_keys is true [default

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
0], thì đầu ra của từ điển sẽ được sắp xếp theo khóa;

Nếu thụt lề là một số nguyên hoặc chuỗi không âm, thì các phần tử JSON và các đối tượng thành viên sẽ khá đẹp với mức thụt lề đó. Receptor into 0, sound or

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
3 will only insert new lines.
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
5 [mặc định] chọn biểu tượng thu gọn nhất. Sử dụng một số nguyên tích cực tích cực chỉ ra rằng nhiều không gian trên mỗi cấp độ. Nếu thụt lề là một chuỗi [không có hạn như
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
5], chuỗi đó được sử dụng để thụt vào mỗi cấp độ

Đã thay đổi trong phiên bản 3. 2. Cho phép các chuỗi đối với lề bên ngoài số nguyên. Cho phép chuỗi thụt lề ngoài số nguyên.

Nếu chỉ được định nghĩa, các dấu phân cách phải là một bộ

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
6. Default is
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
7 if not thụt lề là
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
5 và
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
9 if not. Để có được biểu diễn JSON nhỏ gọn nhất, bạn nên chỉ định_______90 để loại bỏ khoảng trắng

Changed in version 3. 4. Use

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
9 làm mặc định nếu thụt lề không phải là
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
5. Sử dụng
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
9 làm mặc định nếu thụt lề không phải là_______55

If are only, default must be a function is call for the objects can may beTuần hóa. Nó sẽ trả về một phiên bản có thể mã hóa JSON của đối tượng hoặc tăng cường

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6. Nếu không được chỉ định,
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6 được nâng cấp

Đã thay đổi trong phiên bản 3. 6. Tất cả các tham số hiện chỉ có từ khóa. Tất cả các tham số hiện tại chỉ từ khóa .

default [o] ¶[o]

Thực hiện phương pháp này trong một lớp con sao cho nó trả về một đối tượng có thể kết nối tiếp cho O hoặc gọi việc thực hiện cơ sở [để tăng

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6]

Ví dụ. to support the default of the program, you can done

>>> import json
>>> class ComplexEncoder[json.JSONEncoder]:
..     def default[self, obj]:
..         if isinstance[obj, complex]:
..             return [obj.real, obj.imag]
..         # Let the base class default method raise the TypeError
..         return json.JSONEncoder.default[self, obj]
...
>>> json.dumps[2 + 1j, cls=ComplexEncoder]
'[2.0, 1.0]'
>>> ComplexEncoder[].encode[2 + 1j]
'[2.0, 1.0]'
>>> list[ComplexEncoder[].iterencode[2 + 1j]]
['[2.0', ', 1.0', ']']
7 like this.
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
6 mã hóa [o][o]

Trả về một chuỗi biểu diễn JSON của cấu trúc dữ liệu Python, o. Ví dụ

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
7 iterencode [o] ¶[o]

Mã hóa đối tượng đã chọn, O và mang lại từng biểu tượng chuỗi có sẵn. Ví dụ

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
29

Ngoại lệ ha

ExceptionJson. jSondecodeError [MSG, DOC, POS] ¶json. JSONDecodeError[tin nhắn , doc, pos]

Lớp con của

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
5 với các thuộc tính bổ sung sau. tin nhắn

Thông báo lỗi chưa được định dạng

tài liệu

Tài liệu JSON được phân tích cú pháp

vị trí của nước này

Chỉ số bắt đầu của tài liệu nơi cú pháp phân tích thất bại

sắp xếp

Dòng tương ứng với POS

một thứ tiếng lớn

Complementation with POS

New in version 3. 5

Tuân thủ tiêu chuẩn và khả năng tương tác

Định dạng JSON được chỉ định bởi RFC 7159 và ECMA-404. Phần này chi tiết mức độ cao thủ mô-đun này với RFC. To menus, cons layer

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
7 và
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
68 and other tham số bên ngoài những phân loại được đề cập rõ ràng, không được xem xét. RFC 7159 và bởi ECMA-404. Phần này nêu chi tiết mức độ tuân thủ của mô-đun này với RFC. Để đơn giản, các lớp con
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
7 và
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
68 và các tham số khác ngoài những lớp được đề cập rõ ràng, không được xem xét

Mô-đun này không tuân thủ RFC theo kiểu nghiêm ngặt, thực thi một số tiện ích mở rộng tiện ích là JavaScript hợp lệ nhưng JSON không hợp lệ. Special

  • Giá trị số vô hạn và NAN được chấp nhận và đầu ra;

  • Tên lặp lại trong một đối tượng được chấp nhận và chỉ có giá trị của cặp giá trị tên cuối cùng được sử dụng

Do RFC cho phép trình phân tích cú pháp quét RFC tiếp nhận các văn bản đầu vào không quét RFC, nên mô-đun này là trình phân hủy về mặt kỹ thuật quét RFC trong cài đặt mặc định

Mã hóa ký tự

RFC yêu cầu JSON phải được biểu diễn bằng UTF-8, UTF-16 hoặc UTF-32, với UTF-8 là mặc định được đề xuất để có khả năng tương tác tối đa

Mặc dù không được phép, mặc dù không cần thiết, bởi RFC, bộ nối tiếp mô-đun này đặt chắc chắn_ascii = true theo mặc định, do đó thoát ra đầu ra để các chuỗi kết quả chỉ chứa các ký tự ASCII

Khác với tham số quan trọng chắc chắn_ascii, mô-đun này đã được xác định ràng buộc về chuyển đổi mặt giữa các đối tượng Python và

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
42, và do đó không trực tiếp giải quyết vấn đề mã hóa ký tự

RFC cấm thêm byte lệnh [BOM] vào đầu văn bản JSON và bộ tuần tự mô-đun này không thêm BOM vào đầu ra của nó. RFC cho phép, nhưng không yêu cầu, JSON Deserializer phải bỏ qua lệnh cấm BOM đầu vào của họ. Bộ lọc loại mô-đun này đã tăng

>>> import json
>>> json.loads['["foo", {"bar":["baz", null, 1.0, 2]}]']
['foo', {'bar': ['baz', None, 1.0, 2]}]
>>> json.loads['"\\"foo\\bar"']
'"foo\x08ar'
>>> from io import StringIO
>>> io = StringIO['["streaming API"]']
>>> json.load[io]
['streaming API']
5 when have BOM ban đầu

RFC không cấm các chuỗi JSON có chứa các byte chuỗi không tương ứng với các ký tự unicode hợp lệ [ví dụ:. người thay thế UTF-16 không ghép đôi], nhưng điều đó lưu ý rằng họ có thể gây ra các vấn đề về khả năng tương tác. Theo mặc định, mô-đun này chấp nhận và khởi động [khi có trong các điểm mã

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
1] ban đầu cho các chuỗi đó

Giá trị số vô hạn và NAN

RFC không cho phép biểu diễn các giá trị số vô hạn hoặc NAN. Mặc dù vậy, theo mặc định, mô-đun này chấp nhận và khởi động

>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
1,
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
2 và__
>>> import json
>>> def as_complex[dct]:
..     if '__complex__' in dct:
..         return complex[dct['real'], dct['imag']]
..     return dct
...
>>> json.loads['{"__complex__": true, "real": 1, "imag": 2}',
..     object_hook=as_complex]
[1+2j]
>>> import decimal
>>> json.loads['1.1', parse_float=decimal.Decimal]
Decimal['1.1']
0 as could we are the value by the mean black JSON number HỢP LỆ.
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
0

Trong bộ tuần tự, tham số allow_nan có thể được sử dụng để thay đổi hành vi này. Trong Deserializer, tham số parse_constant có thể được sử dụng để thay đổi hành động này

It it it it repeat in a object Ex

RFC chỉ định rằng các tên trong một đối tượng JSON phải là duy nhất, nhưng không bắt buộc làm thế nào các tên lặp lại trong các đối tượng JSON nên được xử lý. Theo mặc định, mô-đun này không nêu ra một ngoại lệ;

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
1

Tham số object_pairs_hook có thể được sử dụng để thay đổi hành động này

Các giá trị không phải là đối tượng cao nhất, không phải là giá trị

Phiên bản cũ của JSON chỉ được định nghĩa bởi RFC 4627 lỗi thời gian yêu cầu rằng giá trị cấp cao nhất của văn bản JSON phải là đối tượng JSON hoặc mảng [Python

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
17 hoặc
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
49] and could not be JSON NULL, Boolean, Number, or String value. RFC 7159 đã loại bỏ giới hạn chế độ đó và mô-đun này không và chưa bao giờ thực hiện chế độ đó trong bộ tuần tự hoặc quá trình phân hủy của nó. RFC 4627 yêu cầu rằng giá trị cấp cao nhất của văn bản JSON phải là một đối tượng hoặc mảng JSON [Python
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
17 hoặc
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
49] và không thể là giá trị chuỗi JSON, null, boolean, số hoặc chuỗi. RFC 7159 đã loại bỏ hạn chế đó và mô-đun này không và chưa bao giờ triển khai hạn chế đó trong bộ tuần tự hóa hoặc bộ giải tuần tự của nó

Bất kể, cho khả năng tương tác tối đa, bạn có thể muốn tự nguyện thủ thuật các hạn chế

Unrealised mode

Một số khai triển Deserializer của JSON có thể đặt giới hạn trên

  • Kích thước của các văn bản JSON được chấp nhận

  • Độ lớn tối đa của các đối tượng và mảng JSON

  • Phạm vi và độ chính xác của số JSON

  • Nội dung và độ dài tối đa của chuỗi JSON

Mô -đun này không áp đặt bất kỳ giới hạn nào như vậy bên ngoài bản thân các kiểu dữ liệu Python có liên quan hoặc chính trình thông dịch Python

Khi tuần tự hóa thành JSON, hãy cẩn thận với mọi hạn chế như vậy trong các ứng dụng có thể tiêu thụ JSON của bạn. Cụ thể, thông thường các số JSON được phân tách thành các số chính xác kép của IEEE 754 và thực hiện điều đó theo phạm vi của biểu diễn và giới hạn chính xác của biểu đó. Điều này đặc biệt có liên quan khi tuần tự hóa các giá trị Python

>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
2 có mức cực đại lớn hoặc khi tuần tự hóa các trường hợp của các loại số kỳ lạ của Hồi giáo
>>> import json
>>> print[json.dumps[{'4': 5, '6': 7}, sort_keys=True, indent=4]]
{
    "4": 5,
    "6": 7
}
61

Command line interface

Mã nguồn. lib/json/công cụ. py Lib/json/công cụ. py

mô-đun

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
8 cung cấp giao diện dòng lệnh đơn giản để xác thực và các đối tượng JSON khá đẹp

If các đối số

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
53 và
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
54 tùy chọn không được chỉ định,
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
55 và
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
56 sẽ được sử dụng tương ứng.
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
2

Changed in version 3. 5. Đầu ra hiện có cùng thứ tự với đầu vào. Sử dụng tùy chọn

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
57 to sorting the top of dictionary theo thứ tự bảng chữ cái theo khóa. Đầu ra bây giờ theo cùng thứ tự với đầu vào. Sử dụng tùy chọn
>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
57 để sắp xếp đầu ra của từ điển theo thứ tự bảng chữ cái theo khóa

Tùy chọn dòng lệnh Jo

trong tập tin¶

Tệp JSON được xác thực hoặc được thay thế

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
3

Nếu không được chỉ định, hãy đọc từ

____055. trang phục

Viết đầu ra của Infile vào trang phục vụ. Nếu không, hãy viết nó vào

____056. .

Sắp xếp đầu ra của từ điển theo thứ tự bảng chữ cái theo khóa

New in version 3. 5

.

Vô hiệu hóa việc thoát các ký tự không phải ASCII, xem

>>> import json
>>> json.dumps[[1, 2, 3, {'4': 5, '6': 7}], separators=[',', ':']]
'[1,2,3,{"4":5,"6":7}]'
60 to know more information

New in version 3. 9

--Json-lines¶

Phân chia mọi dòng đầu vào dưới dạng đối tượng JSON riêng biệt

New in version 3. 8

-Indindent,-tab,-không có suy nghĩ,-Compact¶,--tab, --no-indent,--compact

Các tùy chọn loại trừ nhau để kiểm tra khoảng trắng

New in version 3. 9

--Json-lines¶,--trợ giúp

Phân chia mọi dòng đầu vào dưới dạng đối tượng JSON riêng biệt

New in version 3. 8

1

-Indindent,-tab,-không có suy nghĩ,-Compact¶

Làm thế nào để bạn sắp xếp một bãi rác json trong Python?

Sử dụng hàm json. dumps[] là một cách để sắp xếp các đối tượng JSON. Nó được sử dụng để chuyển đổi các mảng đối tượng JSON thành một đối tượng JSON được sắp xếp. Giá trị của đối số Sort_Keys của hàm Dumps[] sẽ yêu cầu phải đặt đúng để tạo các đối tượng JSON được sắp xếp từ mảng các đối tượng JSON. hàm dumps[] là một cách để sắp xếp đối tượng JSON. Nó được sử dụng để chuyển đổi mảng các đối tượng JSON thành một đối tượng JSON được sắp xếp. Giá trị của đối số sort_keys của hàm dumps[] sẽ yêu cầu đặt True để tạo các đối tượng JSON được sắp xếp từ mảng các đối tượng JSON.

Làm cách nào để sắp xếp một JSON từ khóa?

Nhập JSON của bạn vào vùng văn bản đầu tiên hoặc kéo và thả tệp, sau đó chọn phương thức sắp xếp bạn sẽ sử dụng, giá trị khóa yêu cầu tên khóa [nếu không chỉ được chọn phím đầu tiên], nhấp vào nút . Kết quả sẽ tự động sắp xếp và hiển thị trong khu vực văn bản đầu ra

JSON có đổ rác trật tự quản lý không?

Có, thứ tự của các yếu tố trong mảng JSON được bảo tồn. Từ RFC 7159 -THE JavaScript đối tượng ký hiệu [JSON] Định dạng trao đổi dữ liệu [nhấn mạnh của tôi]. Một đối tượng là một tập tin không có thứ tự hoặc nhiều cặp tên/giá trị, trong đó tên là chuỗi và giá trị là một chuỗi, số, boolean, null, đối tượng hoặc mảng. . Từ RFC 7159 -Định dạng trao đổi dữ liệu ký hiệu đối tượng JavaScript [JSON] [nhấn mạnh của tôi]. Một đối tượng là một tập hợp không có thứ tự gồm 0 hoặc nhiều cặp tên/giá trị, trong đó tên là một chuỗi và giá trị là một chuỗi, số, boolean, null, đối tượng hoặc mảng.

Sự khác biệt giữa void và dumps[] json trong Python là gì?

Phương thức Dump[] được sử dụng để ghi các đối tượng được tuần tự hóa Python dưới dạng JSON được định dạng dữ liệu thành một tệp phương thức. json. dumps [] được sử dụng để mã hóa bất kỳ đối tượng Python nào chuỗi thành được định dạng JSON

Chủ Đề