πŸ“ Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² JSON Python? Учимся ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅

Π§Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON Π² Python, Π²Π°ΠΌ слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ utf-8 ΠΈ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ символы escape (\uXXXX), Π³Π΄Π΅ XXXX - это ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС ΠΊΠΎΠ΄Π° символа.

import json

data = {
    "name": "ΠœΠ°Ρ€ΠΈΡ",
    "age": 25,
    "city": "\u041c\u043e\u0441\u043a\u0432\u0430"
}

json_data = json.dumps(data, ensure_ascii=False)
print(json_data)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° JSON Π² Python. ΠŸΡ€ΠΈ использовании Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ json.dumps() Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ensure_ascii Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ кирилличСскиС символы Π² JSON Π±Π΅Π· ΠΈΡ… эскСйпирования.

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² JSON Π² Python

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с JSON Π² Python Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² JSON. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим нСсколько способов для записи ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² JSON Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python.

1. ИспользованиС стандартных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

Π’ Python Π΅ΡΡ‚ΡŒ встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ json, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ прСдоставляСт Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с JSON. Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² JSON, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ dump ΠΈΠ»ΠΈ dumps ΠΈΠ· модуля json.


import json

data = {
    "имя": "Иван",
    "фамилия": "ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²"
}

# Π—Π°ΠΏΠΈΡΡŒ Π² JSON Ρ„Π°ΠΉΠ» с использованиСм dump
with open("data.json", "w", encoding="utf-8") as file:
    json.dump(data, file, ensure_ascii=False)

# Π—Π°ΠΏΠΈΡΡŒ Π² JSON строку с использованиСм dumps
json_string = json.dumps(data, ensure_ascii=False)
print(json_string)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ data с кирилличСскими ΠΊΠ»ΡŽΡ‡Π°ΠΌΠΈ ΠΈ значСниями. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ dump для записи словаря Π² JSON Ρ„Π°ΠΉΠ» с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° ensure_ascii=False. Π­Ρ‚ΠΎ позволяСт ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² JSON Ρ„Π°ΠΉΠ»Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8.

Если Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ JSON строку, вмСсто записи Π² Ρ„Π°ΠΉΠ», Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ dumps с Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ ensure_ascii=False.

2. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pyyaml

Π•Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ способом записи ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² JSON являСтся использованиС стороннСй Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pyyaml. Π­Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° позволяСт Π»Π΅Π³ΠΊΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅ΠΉ Π² JSON ΠΈ ΠΈΠ·Π±Π΅Π³Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΎΠΉ.


import yaml

data = {
    "имя": "Иван",
    "фамилия": "ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²"
}

# Π—Π°ΠΏΠΈΡΡŒ Π² JSON Ρ„Π°ΠΉΠ» с использованиСм pyyaml
with open("data.json", "w", encoding="utf-8") as file:
    yaml.dump(data, file, allow_unicode=True)

# Π—Π°ΠΏΠΈΡΡŒ Π² JSON строку с использованиСм pyyaml
json_string = yaml.dump(data, allow_unicode=True)
print(json_string)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ dump ΠΈΠ· Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ pyyaml для записи словаря Π² JSON Ρ„Π°ΠΉΠ» ΠΈ получСния JSON строки. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ allow_unicode=True позволяСт ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ кирилличСскиС символы.

3. ИспользованиС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ codecs

Π’Ρ€Π΅Ρ‚ΠΈΠΉ способ - использованиС модуля codecs для указания ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΈ записи Π² JSON Ρ„Π°ΠΉΠ».


import json
import codecs

data = {
    "имя": "Иван",
    "фамилия": "ΠŸΠ΅Ρ‚Ρ€ΠΎΠ²"
}

# Π—Π°ΠΏΠΈΡΡŒ Π² JSON Ρ„Π°ΠΉΠ» с использованиСм codecs
with codecs.open("data.json", "w", encoding="utf-8") as file:
    json.dump(data, file, ensure_ascii=False)
    

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ dump ΠΈΠ· модуля json Π² ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠΈ с ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΌ codecs для записи ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² JSON Ρ„Π°ΠΉΠ» с ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΠΈ UTF-8.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π—Π°ΠΏΠΈΡΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρ‹ Π² JSON Ρ„Π°ΠΉΠ»Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Python Π½Π΅ слоТная Π·Π°Π΄Π°Ρ‡Π°, ΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ способы Π² зависимости ΠΎΡ‚ Π²Π°ΡˆΠΈΡ… ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚Π΅Π½ΠΈΠΉ. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ json, ΡΡ‚ΠΎΡ€ΠΎΠ½Π½ΡŽΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pyyaml ΠΈΠ»ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ codecs Π² сочСтании с json.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²ΠΊΡƒ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, UTF-8) ΠΏΡ€ΠΈ записи Π² JSON Ρ„Π°ΠΉΠ» ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ JSON строки, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π° Π±Ρ‹Π»Π° записана ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π Π°Π±ΠΎΡ‚Π°Π΅ΠΌ с JSON Π² Python. ΠŸΠ°Ρ€ΡΠΈΠ½Π³ JSON, сохраняСм JSON Π² Ρ„Π°ΠΉΠ»

Π§Π’Π•ΠΠ˜Π• И Π—ΠΠŸΠ˜Π‘Π¬ ДАННЫΠ₯ Π’ Π€ΠžΠ ΠœΠΠ’Π• JSON НА PYTHON

Π Π°Π±ΠΎΡ‚Π° с json-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² Python

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

⭐️ Как ΠΏΠΎΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ сумму ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: простой способ с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ ΠΈ объяснСниями!

🐍 ΠŸΠΈΡ‚ΠΎΠ½ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°: Π·Π°Ρ‡Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅?

Как ΡΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ классы Python: практичСскоС руководство πŸβœ…

πŸ“ Как Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Ρƒ Π² JSON Python? Учимся ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° ΠΊΠΈΡ€ΠΈΠ»Π»ΠΈΡ†Π΅

⚑️Как ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚ΡŒ сайт Ρ‡Π΅Ρ€Π΅Π· Python Π² нСсколько простых шагов!✨

πŸ” Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ†ΠΈΠΊΠ» while Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС шаг Π·Π° шагом

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ float Π² Python: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ объяснСниС ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ использования πŸπŸ”