Advertisement
DrMemoryFish

random.py

Dec 19th, 2022
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 16.99 KB | None | 0 0
  1. import csv
  2. import json
  3.  
  4. # Open the JSON file
  5. with open("elements.json", "r") as f:
  6.     elements = json.load(f)
  7.  
  8. # Open the CSV file for writing
  9. with open("elements.csv", "w", newline="", encoding="utf-8") as f:
  10.     writer = csv.writer(f)
  11.  
  12.  
  13.     # Create a list of headers for the CSV file
  14.     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)"]
  15.  
  16.  
  17.  
  18.  
  19.     # Write the headers to the CSV file
  20.     writer.writerow(headers)
  21.     # Iterate over the elements in the dictionary
  22.     for element_number, element_data in elements.items():
  23.         # Extract the values for the columns you want
  24.         #Name
  25.         name = element_data["Name"]["data"]
  26.  
  27.        
  28.         #standard name
  29.         standard_name = element_data["StandardName"]["data"]
  30.  
  31.         #symbol
  32.         symbol = element_data["Symbol"]["data"]
  33.  
  34.         #atomic number
  35.         atomic_number = element_data["AtomicNumber"]["data"]
  36.  
  37.         #cas number
  38.         cas_number = element_data["CASNumber"]["data"]
  39.  
  40.         #abbreviation
  41.         abbreviation = element_data["Abbreviation"]["data"]
  42.  
  43.         #atomic mass
  44.         atomic_mass = element_data["AtomicMass"]["data"]
  45.         if isinstance(atomic_mass, dict):
  46.             atomic_mass_value = atomic_mass["value"]
  47.             atomic_mass_unit = atomic_mass["tex_unit"]
  48.         else:
  49.             atomic_mass_value = atomic_mass
  50.             atomic_mass_unit = ""
  51.            
  52.         #density
  53.         density = element_data["Density"]["data"]
  54.         if isinstance(density, dict):
  55.             density_value = density["value"]
  56.             density_unit = density["tex_unit"]
  57.         else:
  58.             density_value = density
  59.             density_value = ""
  60.  
  61.         #liquid density
  62.         liquid_density = element_data["LiquidDensity"]["data"]
  63.         if isinstance(liquid_density, dict):
  64.             liquid_density_value = liquid_density["value"]
  65.             liquid_density_unit = liquid_density["tex_unit"]
  66.         else:
  67.             liquid_density_value = liquid_density
  68.             liquid_density_unit = ""
  69.  
  70.         #melting point
  71.         melting_point = element_data["MeltingPoint"]["data"]
  72.         if isinstance(melting_point, dict):
  73.             melting_point_value = melting_point["value"]
  74.             melting_point_unit = melting_point["tex_unit"]
  75.         else:
  76.             melting_point_value = melting_point
  77.             melting_point_value = ""
  78.  
  79.         #boiling point
  80.         boiling_point = element_data["BoilingPoint"]["data"]
  81.         if isinstance(boiling_point, dict):
  82.             boiling_point_value = boiling_point["value"]
  83.             boiling_point_unit = boiling_point["tex_unit"]
  84.         else:
  85.             boiling_point_value = boiling_point
  86.             boiling_point_unit = ""
  87.  
  88.         #phase
  89.         phase = element_data["Phase"]["data"]
  90.  
  91.         critical_pressure = element_data["CriticalPressure"]["data"]
  92.         if isinstance(critical_pressure, dict):
  93.             critical_pressure_value = critical_pressure["value"]
  94.             critical_pressure_unit = critical_pressure["tex_unit"]
  95.         else:
  96.             critical_pressure_value = critical_pressure
  97.             critical_pressure_unit = ""
  98.  
  99.         critical_temperature = element_data["CriticalTemperature"]["data"]
  100.         if isinstance(critical_temperature, dict):
  101.             critical_temperature_value = critical_temperature["value"]
  102.             critical_temperature_unit = critical_temperature["tex_unit"]
  103.         else:
  104.             critical_temperature_value = critical_temperature
  105.             critical_temperature_unit = ""
  106.  
  107.         fusion_heat = element_data["FusionHeat"]["data"]
  108.         if isinstance(fusion_heat, dict):
  109.             fusion_heat_value = fusion_heat["value"]
  110.             fusion_heat_unit = fusion_heat["tex_unit"]
  111.         else:
  112.             fusion_heat_value = fusion_heat
  113.             fusion_heat_unit = ""
  114.  
  115.         #fusion efficiency
  116.  
  117.         vaporization_heat = element_data["VaporizationHeat"]["data"]
  118.         if isinstance(vaporization_heat, dict):
  119.             vaporization_heat_value = vaporization_heat["value"]
  120.             vaporization_heat_unit = vaporization_heat["tex_unit"]
  121.         else:
  122.             vaporization_heat_value = vaporization_heat
  123.             vaporization_heat_unit = ""
  124.  
  125.  
  126.  
  127.         specific_heat = element_data["SpecificHeat"]["data"]
  128.         if isinstance(specific_heat, dict):
  129.             specific_heat_value = specific_heat["value"]
  130.             specific_heat_unit = specific_heat["tex_unit"]
  131.         else:
  132.             specific_heat_value = specific_heat
  133.             specific_heat_unit = ""
  134.  
  135.         #adoanatoc index
  136.         adiabatic_index = element_data["AdiabaticIndex"]["data"]
  137.  
  138.         neel_point = element_data["NeelPoint"]["data"]
  139.  
  140.         #thermal conductivity
  141.         thermal_conductivity = element_data["ThermalConductivity"]["data"]
  142.         if isinstance(thermal_conductivity, dict):
  143.             thermal_conductivity_value = thermal_conductivity["value"]
  144.             thermal_conductivity_unit = thermal_conductivity["tex_unit"]
  145.         else:
  146.             thermal_conductivity_value = thermal_conductivity
  147.             thermal_conductivity_unit = ""
  148.  
  149.         #thermal expansion
  150.         thermal_expansion = element_data["ThermalExpansion"]["data"]
  151.         if isinstance(thermal_expansion, dict):
  152.             thermal_expansion_value = thermal_expansion["value"]
  153.             thermal_expansion_unit = thermal_expansion["tex_unit"]
  154.         else:
  155.             thermal_expansion_value = thermal_expansion
  156.             thermal_expansion_unit = ""
  157.  
  158.         #molar volume
  159.         molar_volume = element_data["MolarVolume"]["data"]
  160.         if isinstance(molar_volume, dict):
  161.             molar_volume_value = molar_volume["value"]
  162.             molar_volume_unit = molar_volume["tex_unit"]
  163.         else:
  164.             molar_volume_value = molar_volume
  165.             molar_volume_unit = ""
  166.  
  167.  
  168.         brinell_hardness = element_data["BrinellHardness"]["data"]
  169.         mohs_hardness = element_data["MohsHardness"]["data"]
  170.         vickers_hardness = element_data["VickersHardness"]["data"]
  171.         bulk_modulus = element_data["BulkModulus"]["data"]
  172.         shear_modulus = element_data["ShearModulus"]["data"]
  173.         young_modulus = element_data["YoungModulus"]["data"]
  174.         poisson_ratio = element_data["PoissonRatio"]["data"]
  175.         refractive_index = element_data["RefractiveIndex"]["data"]
  176.  
  177.  
  178.         sound_speed = element_data["SoundSpeed"]["data"]
  179.         if isinstance(sound_speed, dict):
  180.             sound_speed_value = sound_speed["value"]
  181.             sound_speed_unit = sound_speed["tex_unit"]
  182.         else:
  183.             sound_speed_value = sound_speed
  184.             sound_speed_unit = ""
  185.  
  186.  
  187.         valence = element_data["Valence"]["data"]
  188.         electronegativity = element_data["Electronegativity"]["data"]
  189.  
  190.  
  191.         electron_affinity = element_data["ElectronAffinity"]["data"]
  192.         if isinstance(electron_affinity, dict):
  193.             electron_affinity_value = electron_affinity["value"]
  194.             electron_affinity_unit = electron_affinity["tex_unit"]
  195.         else:
  196.             electron_affinity_value = electron_affinity
  197.             electron_affinity_unit = ""
  198.  
  199.  
  200.         ionization_energies = element_data["IonizationEnergies"]["data"]
  201.         alternate_names = element_data["AlternateNames"]["data"]
  202.         allotrope_names = element_data["AllotropeNames"]["data"]
  203.         block = element_data["Block"]["data"]
  204.         group = element_data["Group"]["data"]
  205.         period = element_data["Period"]["data"]
  206.         series = element_data["Series"]["data"]
  207.         electron_configuration = element_data["ElectronConfiguration"]["data"]
  208.         electron_shell_configuration = element_data["ElectronShellConfiguration"]["data"]
  209.         electron_configuration_string = element_data["ElectronConfigurationString"]["data"]
  210.         color = element_data["Color"]["data"]
  211.         discovery_countries = element_data["DiscoveryCountries"]["data"]
  212.         discovery_year = element_data["DiscoveryYear"]["data"]
  213.         electrical_type = element_data["ElectricalType"]["data"]
  214.         electrical_conductivity = element_data["ElectricalConductivity"]["data"]
  215.         resistivity = element_data["Resistivity"]["data"]
  216.         superconducting_point = element_data["SuperconductingPoint"]["data"]
  217.         magnetic_type = element_data["MagneticType"]["data"]
  218.         curie_point = element_data["CuriePoint"]["data"]
  219.  
  220.  
  221.         #mass mangnetic suseptibility
  222.         mass_magnetic_susceptibility = element_data["MassMagneticSusceptibility"]["data"]
  223.         if isinstance(mass_magnetic_susceptibility, dict):
  224.             mass_magnetic_susceptibility_value = mass_magnetic_susceptibility["value"]
  225.             mass_magnetic_susceptibility_unit = mass_magnetic_susceptibility["tex_unit"]
  226.         else:
  227.             mass_magnetic_susceptibility_value = mass_magnetic_susceptibility
  228.             mass_magnetic_susceptibility_unit = ""
  229.  
  230.  
  231.         #molar magneric susceptibility
  232.         molar_magnetic_susceptibility = element_data["MolarMagneticSusceptibility"]["data"]
  233.         if isinstance(molar_magnetic_susceptibility, dict):
  234.             molar_magnetic_susceptibility_value = molar_magnetic_susceptibility["value"]
  235.             molar_magnetic_susceptibility_unit = molar_magnetic_susceptibility["tex_unit"]
  236.         else:
  237.             molar_magnetic_susceptibility_value = molar_magnetic_susceptibility
  238.             molar_magnetic_susceptibility_unit = ""
  239.  
  240.  
  241.         volume_magnetic_susceptibility = element_data["VolumeMagneticSusceptibility"]["data"]
  242.  
  243.  
  244.         #universe abundance
  245.         universe_abundance = element_data["UniverseAbundance"]["data"]
  246.         if isinstance(universe_abundance, dict):
  247.             universe_abundance_value = universe_abundance["value"]
  248.             universe_abundance_unit = universe_abundance["tex_unit"]
  249.         else:
  250.             universe_abundance_value = universe_abundance
  251.             universe_abundance_unit = ""
  252.  
  253.         #solar abundance
  254.         solar_abundance = element_data["SolarAbundance"]["data"]
  255.         if isinstance(solar_abundance, dict):
  256.             solar_abundance_value = solar_abundance["value"]
  257.             solar_abundance_unit = solar_abundance["tex_unit"]
  258.         else:
  259.             solar_abundance_value = solar_abundance
  260.             solar_abundance_unit = ""
  261.  
  262.         #meteorite abundance
  263.         meteorite_abundance = element_data["MeteoriteAbundance"]["data"]
  264.         if isinstance(meteorite_abundance, dict):
  265.             meteorite_abundance_value = meteorite_abundance["value"]
  266.         else:
  267.             meteorite_abundance_value = meteorite_abundance
  268.             meteorite_abundance_unit = ""
  269.        
  270.         #crust abundance
  271.         crust_abundance = element_data["CrustAbundance"]["data"]
  272.         if isinstance(crust_abundance, dict):
  273.             crust_abundance_value = crust_abundance["value"]
  274.             crust_abundance_unit = crust_abundance["tex_unit"]
  275.         else:
  276.             crust_abundance_value = crust_abundance
  277.             crust_abundance_unit = ""
  278.  
  279.  
  280.         #ocean abundance
  281.         ocean_abundance = element_data["OceanAbundance"]["data"]
  282.         if isinstance(ocean_abundance, dict):
  283.             ocean_abundance_value = ocean_abundance["value"]
  284.             ocean_abundance_unit = ocean_abundance["tex_unit"]
  285.         else:
  286.             ocean_abundance_value = ocean_abundance
  287.             ocean_abundance_unit = ""
  288.  
  289.         #human abundance
  290.         human_abundance = element_data["HumanAbundance"]["data"]
  291.         if isinstance(human_abundance, dict):
  292.             human_abundance_value = human_abundance["value"]
  293.         else:
  294.             human_abundance_value = human_abundance
  295.             human_abundance_unit = ""
  296.  
  297.         #atomic radius
  298.         atomic_radius = element_data["AtomicRadius"]["data"]
  299.         if isinstance(atomic_radius, dict):
  300.             atomic_radius_value = atomic_radius["value"]
  301.             atomic_radius_unit = atomic_radius["tex_unit"]
  302.         else:
  303.             atomic_radius_value = atomic_radius
  304.             atomic_radius_unit = ""
  305.  
  306.         #covalent radius
  307.         covalent_radius = element_data["CovalentRadius"]["data"]
  308.         if isinstance(covalent_radius, dict):
  309.             covalent_radius_value = covalent_radius["value"]
  310.             covalent_radius_unit = covalent_radius["tex_unit"]
  311.         else:
  312.             covalent_radius_value = covalent_radius
  313.             covalent_radius_unit = ""
  314.  
  315.  
  316.         #van der walls radius
  317.         van_der_waals_radius = element_data["VanDerWaalsRadius"]["data"]
  318.         if isinstance(van_der_waals_radius, dict):
  319.             van_der_waals_radius_value = van_der_waals_radius["value"]
  320.             van_der_waals_radius_unit = van_der_waals_radius["tex_unit"]
  321.         else:
  322.             van_der_waals_radius_value = van_der_waals_radius
  323.             van_der_waals_radius_unit = ""
  324.  
  325.        
  326.         crystal_structure = element_data["CrystalStructure"]["data"]
  327.         lattice_angles = element_data["LatticeAngles"]["data"]
  328.         lattice_constants = element_data["LatticeConstants"]["data"]
  329.         space_group_name = element_data["SpaceGroupName"]["data"]
  330.         space_group_number = element_data["SpaceGroupNumber"]["data"]
  331.         half_life = element_data["HalfLife"]["data"]
  332.         lifetime = element_data["Lifetime"]["data"]
  333.         decay_mode = element_data["DecayMode"]["data"]
  334.         quantum_numbers = element_data["QuantumNumbers"]["data"]
  335.        
  336.         #neutron cross section
  337.         neutron_cross_section = element_data["NeutronCrossSection"]["data"]
  338.         if isinstance(neutron_cross_section, dict):
  339.             neutron_cross_section_value = neutron_cross_section["value"]
  340.             neutron_cross_section_unit = neutron_cross_section["tex_unit"]
  341.         else:
  342.             neutron_cross_section_value = neutron_cross_section
  343.             neutron_cross_section_unit = ""
  344.  
  345.         #neutron mass absorption
  346.         neutron_mass_absorption = element_data["NeutronMassAbsorption"]["data"]
  347.         if isinstance(neutron_mass_absorption, dict):
  348.             neutron_mass_absorption_value = neutron_mass_absorption["value"]
  349.         else:
  350.             neutron_mass_absorption_value = neutron_mass_absorption
  351.             neutron_mass_absorption_unit = ""
  352.  
  353.         known_isotopes = element_data["KnownIsotopes"]["data"]
  354.         stable_isotopes = element_data["StableIsotopes"]["data"]
  355.         isotope_abundances = element_data["IsotopeAbundances"]["data"]
  356.  
  357.         # Write the values to the CSV file
  358.         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,
  359.                         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