æ°çèšäºãèŠéããªãã«ã¯ïŒ
ãã®ããã°äžèЧãããã¯ããŒã¯ããããŒã ãããŒã«äžèЧã®ã¬ã€ãæ¬ãã芧ãã ãããèšäºã®é²èЧã«ç»é²ãã¡ãŒã«è³Œèªã¯äžèŠã§ãã
Python ã®çµã¿èŸŒã¿ json ã¢ãžã¥ãŒã«ãšãµãŒãããŒãã£ã©ã€ãã©ãª jsonschema ã䜿çšã㊠JSON ãã©ãŒããããšæ§é ãæ€èšŒããæ¹æ³ãåŠã³ãŸããå®å šãªã³ãŒãäŸãšãã¹ããã©ã¯ãã£ã¹ãå«ã¿ãŸãã
Web éçºãšããŒã¿ã€ã³ã¿ã©ã¯ã·ã§ã³ã«ãããŠãJSONïŒJavaScript Object NotationïŒ ã¯æãäžè¬çã«äœ¿çšãããããŒã¿ãã©ãŒãããã®äžã€ã§ãã
API éä¿¡ãèšå®ãã¡ã€ã«ããã°ä¿åãªã©ã®å Žé¢ã§äœ¿çšãããŸãã
ããããéçºäžã«ã¯ä»¥äžã®ãããªåé¡ã«ããééããŸãïŒ
ãããã®ãšã©ãŒã¯ããã°ã©ã ã JSON ããŒã¿ãè§£æã§ããªãåå ãšãªããæ¬çªç°å¢ã§äœ¿çšããåã«ãJSON ãã©ãŒããããæ£ãããã©ãããæ€èšŒããå¿ èŠããããŸãã
Python ã«ã¯éåžžã«å®çšçãªçµã¿èŸŒã¿ã¢ãžã¥ãŒã« json ããããJSON ã®èªã¿èŸŒã¿ãšæ€èšŒãç°¡åã«è¡ãããšãã§ããŸãã
import json
def validate_json(json_string):
try:
json.loads(json_string)
print("â
JSON ãã©ãŒããããæ£ããã§ãïŒ")
except json.JSONDecodeError as e:
print("â JSON ãã©ãŒããããšã©ãŒïŒ", e)
# äŸã® JSON
data = '{"name": "Alice", "age": 25}'
validate_json(data)å®è¡çµæïŒ
â
JSON ãã©ãŒããããæ£ããã§ãïŒå ¥åãã©ãŒããããééã£ãŠããå ŽåãäŸãã°ïŒ
data = '{"name": "Alice", "age": 25,}' # äœåãªã«ã³ã
validate_json(data)çµæïŒ
â JSON ãã©ãŒããããšã©ãŒïŒExpecting property name enclosed in double quotes: line 1 column 28 (char 27)import json
def validate_json_file(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
try:
json.load(f)
print(f"â
ãã¡ã€ã« {file_path} ã® JSON ãã©ãŒããããæ£ããã§ãïŒ")
except json.JSONDecodeError as e:
print(f"â {file_path} ãã©ãŒããããšã©ãŒïŒ{e}")
# åŒã³åºã
validate_json_file('data.json')ãã®ã¹ã¯ãªããã¯èªåçã«ãã¡ã€ã«ãèªã¿èŸŒã¿ãå 容ãæå¹ãª JSON ãã©ãããæ€èšŒããŸãã
æ§æã®æ£ç¢ºæ§ã«å ããŠãæã«ã¯ JSON ã®æ§é ãæåŸ
éããã©ãããæ€èšŒãããå ŽåããããŸããäŸãã°ãnameãageãemail ãã£ãŒã«ããå¿
é ã§ããããšãªã©ã§ãã
ããã«ã¯ãµãŒãããŒãã£ã©ã€ãã©ãª jsonschema ã䜿çšã§ããŸãã
pip install jsonschemafrom jsonschema import validate, ValidationError
# ããŒã¿æ§é ãå®çŸ©
schema = {
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer"},
"email": {"type": "string"}
},
"required": ["name", "age"]
}
# ãã¹ãããŒã¿
data = {"name": "Alice", "age": 25}
try:
validate(instance=data, schema=schema)
print("â
JSON ããŒã¿æ§é ãæå¹ã§ãïŒ")
except ValidationError as e:
print("â JSON æ§é ãšã©ãŒïŒ", e.message)å®è¡çµæïŒ
â
JSON ããŒã¿æ§é ãæå¹ã§ãïŒãã£ãŒã«ããäžè¶³ããŠããããåãééã£ãŠããå Žåãæç¢ºãªãšã©ãŒã¡ãã»ãŒãžã衚瀺ãããŸãã
import os
import json
def validate_json_files(folder):
for file in os.listdir(folder):
if file.endswith('.json'):
path = os.path.join(folder, file)
try:
with open(path, 'r', encoding='utf-8') as f:
json.load(f)
print(f"â
{file} æ€èšŒéé")
except json.JSONDecodeError as e:
print(f"â {file} ãã©ãŒããããšã©ãŒïŒ{e}")
# çŸåšã®ãã£ã¬ã¯ããªå
ã®ãã¹ãŠã® JSON ãã¡ã€ã«ãäžæ¬æ€èšŒ
validate_json_files(".")Python ã§ JSON ãæ€èšŒããããšã¯ãã·ã³ãã«ã§å¹ççãªã ãã§ãªããèªåãã¹ããããŒã¿ã€ã³ããŒããªã©ã®ã¯ãŒã¯ãããŒãšãçµ±åã§ããŸãã
ãããžã§ã¯ãã§ JSON æ€èšŒãç¬ç«ããã¹ããããšããŠäœ¿çšããããšã§ãæ¬çªç°å¢ã§ã®ãã©ãŒããããšã©ãŒã«ããã€ã³ã¿ãŒãã§ãŒã¹äŸå€ãé¿ããããšãã§ããŸãã
ã¹ã¯ãªãããæåã§å®è¡ããããªãå Žåã¯ããªã³ã©ã€ã³ããŒã«ãçŽæ¥äœ¿çšããããšãã§ããŸãïŒ
ð JSON ããªããŒã¿ãŒ ãªã³ã©ã€ã³ããŒã«
ãµããŒãæ©èœïŒ
éçºè ã«æé«ã®JSONåŠçããŒã«ãæäŸããããšã«å°å¿µ
ããã«å€ãã®æçš¿ãè¿æ¥å ¬éäºå®...
ããã°ã«æ»ãæŽæ°ã®è¿œãæ¹ãæ±ããããã¯ããªã¯ãšã¹ãã«ã€ããŠã
ãã®ããã°äžèЧãããã¯ããŒã¯ããããŒã ãããŒã«äžèЧã®ã¬ã€ãæ¬ãã芧ãã ãããèšäºã®é²èЧã«ç»é²ãã¡ãŒã«è³Œèªã¯äžèŠã§ãã
JSON ã®æ€èšŒã»æŽåœ¢ã»å€æã»ãããã°ã®æµããš JSON Work ã®æŽæ°ã§ããµã€ãäžã®ç¡æããŒã«ããã©ãŠã¶å ã§ã§ããããšãšå¯Ÿå¿ã¥ããŠããŸãã
ã¯ããAbout ã®é£çµ¡å ã GitHub ããã©ãããå®åã®çµ±åããããã°ã«çŽçµããããŒããåªå ããŠããŸãã