65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
import json
|
|
#some test
|
|
#test laptop
|
|
# Define the input and output file paths
|
|
input_json_path = 'rimond_model_madrid_beautified.json' # Replace with your input JSON file path
|
|
output_json_with_type_path = 'ifc-shape-representation.json' # JSON with only the specified type
|
|
output_json_without_type_path = 'rimond_model_madrid_v3_beautified_new.json' # JSON without the specified type
|
|
|
|
def filter_json_by_type(input_json, specified_type):
|
|
with_type = []
|
|
without_type = []
|
|
|
|
# Filter the data based on the specified type
|
|
for entry in input_json['data']:
|
|
if entry['type'] == specified_type:
|
|
with_type.append(entry)
|
|
else:
|
|
without_type.append(entry)
|
|
|
|
# Create the two output JSON structures
|
|
output_with_type = {
|
|
"type": input_json['type'],
|
|
"version": input_json['version'],
|
|
"schemaIdentifier": input_json['schemaIdentifier'],
|
|
"originatingSystem": input_json['originatingSystem'],
|
|
"preprocessorVersion": input_json['preprocessorVersion'],
|
|
"timeStamp": input_json['timeStamp'],
|
|
"data": with_type
|
|
}
|
|
|
|
output_without_type = {
|
|
"type": input_json['type'],
|
|
"version": input_json['version'],
|
|
"schemaIdentifier": input_json['schemaIdentifier'],
|
|
"originatingSystem": input_json['originatingSystem'],
|
|
"preprocessorVersion": input_json['preprocessorVersion'],
|
|
"timeStamp": input_json['timeStamp'],
|
|
"data": without_type
|
|
}
|
|
|
|
return output_with_type, output_without_type
|
|
|
|
def main(specified_type):
|
|
# Read the input JSON file
|
|
with open(input_json_path, 'r') as file:
|
|
input_json = json.load(file)
|
|
|
|
# Filter the JSON data
|
|
output_with_type, output_without_type = filter_json_by_type(input_json, specified_type)
|
|
|
|
# Write the filtered JSON data to new files
|
|
with open(output_json_with_type_path, 'w') as file:
|
|
json.dump(output_with_type, file, indent=4)
|
|
|
|
with open(output_json_without_type_path, 'w') as file:
|
|
json.dump(output_without_type, file, indent=4)
|
|
|
|
print(f"Successfully filtered the JSON data based on type '{specified_type}' and saved to:")
|
|
print(f"- {output_json_with_type_path}")
|
|
print(f"- {output_json_without_type_path}")
|
|
|
|
# Example usage
|
|
specified_type = "IfcShapeRepresentation" # Replace with the type you want to filter by
|
|
main(specified_type)
|