import json
from datetime import datetime
def iso_to_epoch_ms(iso_str):
"""
Convert ISO 8601 timestamp to milliseconds since epoch
"""
dt = datetime.fromisoformat(iso_str.replace("Z", "+00:00"))
return int(dt.timestamp() * 1000)
def convertFromFormat1(obj):
"""
Convert data from format 1 to unified format
"""
parts = obj["location"].split("/")
return {
"deviceID": obj["deviceID"],
"deviceType": obj["deviceType"],
"timestamp": obj["timestamp"],
"location": {
"country": parts[0],
"city": parts[1],
"area": parts[2],
"factory": parts[3],
"section": parts[4]
},
"data": {
"status": obj["operationStatus"],
"temperature": obj["temp"]
}
}
def convertFromFormat2(obj):
"""
Convert data from format 2 to unified format
"""
return {
"deviceID": obj["device"]["id"],
"deviceType": obj["device"]["type"],
"timestamp": iso_to_epoch_ms(obj["timestamp"]),
"location": {
"country": obj["country"],
"city": obj["city"],
"area": obj["area"],
"factory": obj["factory"],
"section": obj["section"]
},
"data": {
"status": obj["data"]["status"],
"temperature": obj["data"]["temperature"]
}
}
def main():
"""
Read input files, normalize data, and print unified output
"""
with open("data-1.json") as f1, open("data-2.json") as f2:
data1 = json.load(f1)
data2 = json.load(f2)
result = []
# Handle format 1
if isinstance(data1, dict):
result.append(convertFromFormat1(data1))
else:
for item in data1:
result.append(convertFromFormat1(item))
# Handle format 2
if isinstance(data2, dict):
result.append(convertFromFormat2(data2))
else:
for item in data2:
result.append(convertFromFormat2(item))
print(json.dumps(result, indent=2))
if __name__ == "__main__":
main()⚠️Content was pasted as plain text and auto-formatted as a code block. Use the Code Block button in the editor for proper formatting.