පයිතන් 2 භාවිතය සඳහා පිළිගත් පිළිතුරෙහි ascii -encoded වලට වඩා utf8 -encoded ගොනුව ලබා ගැනීම සඳහා:
import io, json
with io.open('data.txt', 'w', encoding='utf-8') as f:
f.write(json.dumps(data, ensure_ascii=False))
පයිතන් 3 හි කේතය සරල ය:
import json
with open('data.txt', 'w') as f:
json.dump(data, f, ensure_ascii=False)
වින්ඩෝස් හි, encoding='utf-8'
තර්කය open
තවමත් අවශ්ය වේ.
දත්තවල සංකේතාත්මක පිටපතක් මතකයේ ගබඩා කිරීමෙන් වළක්වා ගැනීමට ( ප්රති result ලය dumps
) සහ පයිතන් 2 සහ 3 යන දෙවර්ගයේම utf8- කේතනය කරන ලද බයිට්ස්ට්රිං ප්රතිදානය කිරීමට , භාවිතා කරන්න:
import json, codecs
with open('data.txt', 'wb') as f:
json.dump(data, codecs.getwriter('utf-8')(f), ensure_ascii=False)
මෙම codecs.getwriter
ඇමතුම් Python 3 අතිරික්ත නමුත් Python සඳහා අවශ්ය 2
කියවීමේ හැකියාව සහ ප්රමාණය:
භාවිතය ensure_ascii=False
වඩා හොඳ කියවීමේ හැකියාව සහ කුඩා ප්රමාණය ලබා දෙයි:
>>> json.dumps({'price': '€10'})
'{"price": "\\u20ac10"}'
>>> json.dumps({'price': '€10'}, ensure_ascii=False)
'{"price": "€10"}'
>>> len(json.dumps({'абвгд': 1}))
37
>>> len(json.dumps({'абвгд': 1}, ensure_ascii=False).encode('utf8'))
17
තවදුරටත් කොඩි එකතු කිරීම මඟින් කියවීමේ පහසුව වැඩි දියුණු කිරීම indent=4, sort_keys=True
(යෝජනා කරන පරිදි dinos66 ) තර්ක කිරීමට dump
හෝ dumps
. මේ ආකාරයෙන් ඔබට තරමක් විශාල ගොනු ප්රමාණයක වියදමින් json ගොනුවේ මනාව මුද්රණය කරන ලද ව්යුහයක් ලැබෙනු ඇත.