Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv
- import json
- # Open the JSON file
- with open("elements.json", "r") as f:
- elements = json.load(f)
- # Open the CSV file for writing
- with open("elements.csv", "w", newline="", encoding="utf-8") as f:
- writer = csv.writer(f)
- # Create a list of headers for the CSV file
- headers = ["Name", "Standard Name", "Symbol", "Atomic Number", "CAS Number", "Abbreviation", "Atomic Mass (u)", "Density (kg/m^3)", "Liquid Density", "Melting Point (°C)", "Boiling Point (°C)", "Phase", "Critical Pressure (MPa)", "Critical Temperature (K)", "Fusion Heat (kJ/mol)", "Vaporization Heat (kJ/mol)", "Specific Heat (J/(kg K))", "Adiabatic Index", "Néel Point", "Thermal Conductivity (W/(m K))", "Thermal Expansion", "Molar Volume (cm^3/mol)", "Brinell Hardness", "Mohs Hardness", "Vickers Hardness", "Bulk Modulus (GPa)", "Shear Modulus (GPa)", "Young Modulus (GPa)", "Poisson Ratio", "Refractive Index", "Sound Speed (m/s)", "Valence", "Electronegativity", "Electron Affinity (kJ/mol)", "Ionization Energies (kJ/mol)", "Alternate Names", "Allotrope Names", "Block", "Group", "Period", "Series", "Electron Configuration", "Electron Shell Configuration", "Electron Configuration String", "Color", "Discovery Countries", "Discovery Year", "Electrical Type", "Electrical Conductivity (S/m)", "Resistivity (Ω m)", "Superconducting Point", "Magnetic Type", "Curie Point (K)", "Mass Magnetic Susceptibility (cm^3/mol)", "Molar Magnetic Susceptibility (cm^3/mol)", "Volume Magnetic Susceptibility (cm^3/mol)", "Universe Abundance", "Solar Abundance", "Meteorite Abundance", "Crust Abundance", "Ocean Abundance", "Human Abundance", "Atomic Radius (pm)"]
- # Write the headers to the CSV file
- writer.writerow(headers)
- # Iterate over the elements in the dictionary
- for element_number, element_data in elements.items():
- # Extract the values for the columns you want
- #Name
- name = element_data["Name"]["data"]
- #standard name
- standard_name = element_data["StandardName"]["data"]
- #symbol
- symbol = element_data["Symbol"]["data"]
- #atomic number
- atomic_number = element_data["AtomicNumber"]["data"]
- #cas number
- cas_number = element_data["CASNumber"]["data"]
- #abbreviation
- abbreviation = element_data["Abbreviation"]["data"]
- #atomic mass
- atomic_mass = element_data["AtomicMass"]["data"]
- if isinstance(atomic_mass, dict):
- atomic_mass_value = atomic_mass["value"]
- atomic_mass_unit = atomic_mass["tex_unit"]
- else:
- atomic_mass_value = atomic_mass
- atomic_mass_unit = ""
- #density
- density = element_data["Density"]["data"]
- if isinstance(density, dict):
- density_value = density["value"]
- density_unit = density["tex_unit"]
- else:
- density_value = density
- density_value = ""
- #liquid density
- liquid_density = element_data["LiquidDensity"]["data"]
- if isinstance(liquid_density, dict):
- liquid_density_value = liquid_density["value"]
- liquid_density_unit = liquid_density["tex_unit"]
- else:
- liquid_density_value = liquid_density
- liquid_density_unit = ""
- #melting point
- melting_point = element_data["MeltingPoint"]["data"]
- if isinstance(melting_point, dict):
- melting_point_value = melting_point["value"]
- melting_point_unit = melting_point["tex_unit"]
- else:
- melting_point_value = melting_point
- melting_point_value = ""
- #boiling point
- boiling_point = element_data["BoilingPoint"]["data"]
- if isinstance(boiling_point, dict):
- boiling_point_value = boiling_point["value"]
- boiling_point_unit = boiling_point["tex_unit"]
- else:
- boiling_point_value = boiling_point
- boiling_point_unit = ""
- #phase
- phase = element_data["Phase"]["data"]
- critical_pressure = element_data["CriticalPressure"]["data"]
- if isinstance(critical_pressure, dict):
- critical_pressure_value = critical_pressure["value"]
- critical_pressure_unit = critical_pressure["tex_unit"]
- else:
- critical_pressure_value = critical_pressure
- critical_pressure_unit = ""
- critical_temperature = element_data["CriticalTemperature"]["data"]
- if isinstance(critical_temperature, dict):
- critical_temperature_value = critical_temperature["value"]
- critical_temperature_unit = critical_temperature["tex_unit"]
- else:
- critical_temperature_value = critical_temperature
- critical_temperature_unit = ""
- fusion_heat = element_data["FusionHeat"]["data"]
- if isinstance(fusion_heat, dict):
- fusion_heat_value = fusion_heat["value"]
- fusion_heat_unit = fusion_heat["tex_unit"]
- else:
- fusion_heat_value = fusion_heat
- fusion_heat_unit = ""
- #fusion efficiency
- vaporization_heat = element_data["VaporizationHeat"]["data"]
- if isinstance(vaporization_heat, dict):
- vaporization_heat_value = vaporization_heat["value"]
- vaporization_heat_unit = vaporization_heat["tex_unit"]
- else:
- vaporization_heat_value = vaporization_heat
- vaporization_heat_unit = ""
- specific_heat = element_data["SpecificHeat"]["data"]
- if isinstance(specific_heat, dict):
- specific_heat_value = specific_heat["value"]
- specific_heat_unit = specific_heat["tex_unit"]
- else:
- specific_heat_value = specific_heat
- specific_heat_unit = ""
- #adoanatoc index
- adiabatic_index = element_data["AdiabaticIndex"]["data"]
- neel_point = element_data["NeelPoint"]["data"]
- #thermal conductivity
- thermal_conductivity = element_data["ThermalConductivity"]["data"]
- if isinstance(thermal_conductivity, dict):
- thermal_conductivity_value = thermal_conductivity["value"]
- thermal_conductivity_unit = thermal_conductivity["tex_unit"]
- else:
- thermal_conductivity_value = thermal_conductivity
- thermal_conductivity_unit = ""
- #thermal expansion
- thermal_expansion = element_data["ThermalExpansion"]["data"]
- if isinstance(thermal_expansion, dict):
- thermal_expansion_value = thermal_expansion["value"]
- thermal_expansion_unit = thermal_expansion["tex_unit"]
- else:
- thermal_expansion_value = thermal_expansion
- thermal_expansion_unit = ""
- #molar volume
- molar_volume = element_data["MolarVolume"]["data"]
- if isinstance(molar_volume, dict):
- molar_volume_value = molar_volume["value"]
- molar_volume_unit = molar_volume["tex_unit"]
- else:
- molar_volume_value = molar_volume
- molar_volume_unit = ""
- brinell_hardness = element_data["BrinellHardness"]["data"]
- mohs_hardness = element_data["MohsHardness"]["data"]
- vickers_hardness = element_data["VickersHardness"]["data"]
- bulk_modulus = element_data["BulkModulus"]["data"]
- shear_modulus = element_data["ShearModulus"]["data"]
- young_modulus = element_data["YoungModulus"]["data"]
- poisson_ratio = element_data["PoissonRatio"]["data"]
- refractive_index = element_data["RefractiveIndex"]["data"]
- sound_speed = element_data["SoundSpeed"]["data"]
- if isinstance(sound_speed, dict):
- sound_speed_value = sound_speed["value"]
- sound_speed_unit = sound_speed["tex_unit"]
- else:
- sound_speed_value = sound_speed
- sound_speed_unit = ""
- valence = element_data["Valence"]["data"]
- electronegativity = element_data["Electronegativity"]["data"]
- electron_affinity = element_data["ElectronAffinity"]["data"]
- if isinstance(electron_affinity, dict):
- electron_affinity_value = electron_affinity["value"]
- electron_affinity_unit = electron_affinity["tex_unit"]
- else:
- electron_affinity_value = electron_affinity
- electron_affinity_unit = ""
- ionization_energies = element_data["IonizationEnergies"]["data"]
- alternate_names = element_data["AlternateNames"]["data"]
- allotrope_names = element_data["AllotropeNames"]["data"]
- block = element_data["Block"]["data"]
- group = element_data["Group"]["data"]
- period = element_data["Period"]["data"]
- series = element_data["Series"]["data"]
- electron_configuration = element_data["ElectronConfiguration"]["data"]
- electron_shell_configuration = element_data["ElectronShellConfiguration"]["data"]
- electron_configuration_string = element_data["ElectronConfigurationString"]["data"]
- color = element_data["Color"]["data"]
- discovery_countries = element_data["DiscoveryCountries"]["data"]
- discovery_year = element_data["DiscoveryYear"]["data"]
- electrical_type = element_data["ElectricalType"]["data"]
- electrical_conductivity = element_data["ElectricalConductivity"]["data"]
- resistivity = element_data["Resistivity"]["data"]
- superconducting_point = element_data["SuperconductingPoint"]["data"]
- magnetic_type = element_data["MagneticType"]["data"]
- curie_point = element_data["CuriePoint"]["data"]
- #mass mangnetic suseptibility
- mass_magnetic_susceptibility = element_data["MassMagneticSusceptibility"]["data"]
- if isinstance(mass_magnetic_susceptibility, dict):
- mass_magnetic_susceptibility_value = mass_magnetic_susceptibility["value"]
- mass_magnetic_susceptibility_unit = mass_magnetic_susceptibility["tex_unit"]
- else:
- mass_magnetic_susceptibility_value = mass_magnetic_susceptibility
- mass_magnetic_susceptibility_unit = ""
- #molar magneric susceptibility
- molar_magnetic_susceptibility = element_data["MolarMagneticSusceptibility"]["data"]
- if isinstance(molar_magnetic_susceptibility, dict):
- molar_magnetic_susceptibility_value = molar_magnetic_susceptibility["value"]
- molar_magnetic_susceptibility_unit = molar_magnetic_susceptibility["tex_unit"]
- else:
- molar_magnetic_susceptibility_value = molar_magnetic_susceptibility
- molar_magnetic_susceptibility_unit = ""
- volume_magnetic_susceptibility = element_data["VolumeMagneticSusceptibility"]["data"]
- #universe abundance
- universe_abundance = element_data["UniverseAbundance"]["data"]
- if isinstance(universe_abundance, dict):
- universe_abundance_value = universe_abundance["value"]
- universe_abundance_unit = universe_abundance["tex_unit"]
- else:
- universe_abundance_value = universe_abundance
- universe_abundance_unit = ""
- #solar abundance
- solar_abundance = element_data["SolarAbundance"]["data"]
- if isinstance(solar_abundance, dict):
- solar_abundance_value = solar_abundance["value"]
- solar_abundance_unit = solar_abundance["tex_unit"]
- else:
- solar_abundance_value = solar_abundance
- solar_abundance_unit = ""
- #meteorite abundance
- meteorite_abundance = element_data["MeteoriteAbundance"]["data"]
- if isinstance(meteorite_abundance, dict):
- meteorite_abundance_value = meteorite_abundance["value"]
- else:
- meteorite_abundance_value = meteorite_abundance
- meteorite_abundance_unit = ""
- #crust abundance
- crust_abundance = element_data["CrustAbundance"]["data"]
- if isinstance(crust_abundance, dict):
- crust_abundance_value = crust_abundance["value"]
- crust_abundance_unit = crust_abundance["tex_unit"]
- else:
- crust_abundance_value = crust_abundance
- crust_abundance_unit = ""
- #ocean abundance
- ocean_abundance = element_data["OceanAbundance"]["data"]
- if isinstance(ocean_abundance, dict):
- ocean_abundance_value = ocean_abundance["value"]
- ocean_abundance_unit = ocean_abundance["tex_unit"]
- else:
- ocean_abundance_value = ocean_abundance
- ocean_abundance_unit = ""
- #human abundance
- human_abundance = element_data["HumanAbundance"]["data"]
- if isinstance(human_abundance, dict):
- human_abundance_value = human_abundance["value"]
- else:
- human_abundance_value = human_abundance
- human_abundance_unit = ""
- #atomic radius
- atomic_radius = element_data["AtomicRadius"]["data"]
- if isinstance(atomic_radius, dict):
- atomic_radius_value = atomic_radius["value"]
- atomic_radius_unit = atomic_radius["tex_unit"]
- else:
- atomic_radius_value = atomic_radius
- atomic_radius_unit = ""
- #covalent radius
- covalent_radius = element_data["CovalentRadius"]["data"]
- if isinstance(covalent_radius, dict):
- covalent_radius_value = covalent_radius["value"]
- covalent_radius_unit = covalent_radius["tex_unit"]
- else:
- covalent_radius_value = covalent_radius
- covalent_radius_unit = ""
- #van der walls radius
- van_der_waals_radius = element_data["VanDerWaalsRadius"]["data"]
- if isinstance(van_der_waals_radius, dict):
- van_der_waals_radius_value = van_der_waals_radius["value"]
- van_der_waals_radius_unit = van_der_waals_radius["tex_unit"]
- else:
- van_der_waals_radius_value = van_der_waals_radius
- van_der_waals_radius_unit = ""
- crystal_structure = element_data["CrystalStructure"]["data"]
- lattice_angles = element_data["LatticeAngles"]["data"]
- lattice_constants = element_data["LatticeConstants"]["data"]
- space_group_name = element_data["SpaceGroupName"]["data"]
- space_group_number = element_data["SpaceGroupNumber"]["data"]
- half_life = element_data["HalfLife"]["data"]
- lifetime = element_data["Lifetime"]["data"]
- decay_mode = element_data["DecayMode"]["data"]
- quantum_numbers = element_data["QuantumNumbers"]["data"]
- #neutron cross section
- neutron_cross_section = element_data["NeutronCrossSection"]["data"]
- if isinstance(neutron_cross_section, dict):
- neutron_cross_section_value = neutron_cross_section["value"]
- neutron_cross_section_unit = neutron_cross_section["tex_unit"]
- else:
- neutron_cross_section_value = neutron_cross_section
- neutron_cross_section_unit = ""
- #neutron mass absorption
- neutron_mass_absorption = element_data["NeutronMassAbsorption"]["data"]
- if isinstance(neutron_mass_absorption, dict):
- neutron_mass_absorption_value = neutron_mass_absorption["value"]
- else:
- neutron_mass_absorption_value = neutron_mass_absorption
- neutron_mass_absorption_unit = ""
- known_isotopes = element_data["KnownIsotopes"]["data"]
- stable_isotopes = element_data["StableIsotopes"]["data"]
- isotope_abundances = element_data["IsotopeAbundances"]["data"]
- # Write the values to the CSV file
- writer.writerow([name, standard_name, symbol, atomic_number, cas_number, abbreviation, atomic_mass, density, liquid_density, melting_point, boiling_point, phase, critical_pressure, critical_temperature, fusion_heat, vaporization_heat, specific_heat, adiabatic_index, neel_point, thermal_conductivity, thermal_expansion, molar_volume, brinell_hardness, mohs_hardness, vickers_hardness, bulk_modulus, shear_modulus, young_modulus, poisson_ratio, refractive_index, sound_speed, valence, electronegativity, electron_affinity, ionization_energies, alternate_names, allotrope_names, block, group, period, series, electron_configuration, electron_shell_configuration,
- electron_configuration_string, color, discovery_countries, discovery_year, electrical_type, electrical_conductivity, resistivity, superconducting_point, magnetic_type, curie_point, mass_magnetic_susceptibility, molar_magnetic_susceptibility, volume_magnetic_susceptibility, universe_abundance, solar_abundance, meteorite_abundance, crust_abundance, ocean_abundance, human_abundance, atomic_radius, covalent_radius, van_der_waals_radius, crystal_structure, lattice_angles, lattice_constants, space_group_name, space_group_number, half_life, lifetime, decay_mode, quantum_numbers, neutron_cross_section, neutron_mass_absorption, known_isotopes, stable_isotopes, isotope_abundances])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement