mirror of
https://github.com/richgel999/ufo_data.git
synced 2024-10-01 01:45:37 -04:00
69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
import json
|
|
|
|
def parse_and_write_json(input_file, output_file):
|
|
# Read the JSON file into memory using utf-8-sig to handle BOM
|
|
with open(input_file, 'r', encoding='utf-8-sig') as f:
|
|
data = json.load(f)
|
|
|
|
# Extract the "Majestic Timeline" field
|
|
majestic_timeline = data.get("Majestic Timeline", [])
|
|
|
|
# Prepare the output content
|
|
output_content = ""
|
|
for idx, entry in enumerate(majestic_timeline):
|
|
basic_date = entry.get("basic_date", "")
|
|
desc = entry.get("desc", "")
|
|
ref = entry.get("ref", "")
|
|
source = entry.get("source", "")
|
|
source_id = entry.get("source_id", "")
|
|
entry_type = entry.get("type", "")
|
|
location = entry.get("location", "")
|
|
time = entry.get("time", "")
|
|
attributes = entry.get("attributes", [])
|
|
|
|
# Handle "ref" field which can be a single string or an array of strings
|
|
if isinstance(ref, list):
|
|
ref = "; ".join(ref)
|
|
|
|
# Handle "location" field which can be a single string or an array of strings
|
|
if isinstance(location, list):
|
|
location = "; ".join(location)
|
|
|
|
# Handle "attributes" field which can be an array of strings
|
|
if isinstance(attributes, list):
|
|
attributes = "; ".join(attributes)
|
|
|
|
output_content += (
|
|
f"** Event {idx} **\n"
|
|
f"Date: {basic_date}\n"
|
|
f"Description: {desc}\n"
|
|
f"Reference: {ref}\n"
|
|
f"Source: {source}\n"
|
|
f"Source ID: {source_id}\n"
|
|
)
|
|
|
|
if entry_type:
|
|
output_content += f"Type: {entry_type}\n"
|
|
|
|
if location:
|
|
output_content += f"Location: {location}\n"
|
|
|
|
if attributes:
|
|
output_content += f"Attributes: {attributes}\n"
|
|
|
|
if time:
|
|
output_content += f"Time: {time}\n"
|
|
|
|
output_content += "\n"
|
|
|
|
# Write the output content to a UTF-8 text file
|
|
with open(output_file, 'w', encoding='utf-8') as f:
|
|
f.write(output_content)
|
|
|
|
# Example usage
|
|
input_file = 'majestic.json' # Replace with the path to your input JSON file
|
|
output_file = 'majestic.txt' # Replace with the desired output file path
|
|
|
|
parse_and_write_json(input_file, output_file)
|
|
|