Dynamic XML_JSON parser to transform XML and JSON files to CSV in a instant by the use of multi threading.
The module was developed in python3 with usage of xml, json, pandas, threading, queue module.
python3 main.py -i resident.xml -o resident_output.csv -e Resident
python3 main.py -i sample_2.json -o sample_2_output.csv -e fruit
Command Line Arguments:
Convert XML or JSON file to csv
-
optional arguments:
- -h, --help show this help message and exit
- -i INPUT_FILE, --input_file INPUT_FILE Source XML or JSON file (mandatory)
- -o OUTPUT_FILE, --output_file OUTPUT_FILE Destination csv file (mandatory)
- -e ELEMENT, --element ELEMENT element to parse (mandatory)
<State>
<Resident>
<Name>Sample Name</Name>
<PhoneNumber>1234567891</PhoneNumber>
<EmailAddress>sample_name@example.com</EmailAddress>
<Address>
<StreetLine1>Street Line1</StreetLine1>
<City>City Name</City>
<StateCode>AE</StateCode>
<PostalCode>12345</PostalCode>
</Address>
</Resident>
<Resident>
<Name>Sample Name1</Name>
<PhoneNumber>1234567891</PhoneNumber>
<EmailAddress>sample_name1@example.com</EmailAddress>
<Address>
<StreetLine1>Current Address</StreetLine1>
<City>Los Angeles</City>
<StateCode>CA</StateCode>
<PostalCode>56666</PostalCode>
</Address>
</Resident>
</State>
python3 main.py -i resident.xml -o resident_output.csv -e Resident
Resident##Address##City | Resident##Address##PostalCode | Resident##Address##StateCode | Resident##Address##StreetLine1 | Resident##EmailAddress | Resident##Name | Resident##PhoneNumber |
---|---|---|---|---|---|---|
Los Angeles | 56666 | CA | Current Address | sample_name1@example.com | Sample Name1 | 1234567891 |
City Name | 12345 | AE | Street Line1 | sample_name@example.com | Sample Name | 1234567891 |
{
"fruit":[
{
"name":"Apple",
"binomial name":"Malus domestica",
"major_producers":[
"China",
"United States",
"Turkey"
],
"nutrition":{
"carbohydrates":"13.81g",
"fat":"0.17g",
"protein":"0.26g"
}
},
{
"name":"Orange",
"binomial name":"Citrus x sinensis",
"major_producers":[
"Brazil",
"United States",
"India"
],
"nutrition":{
"carbohydrates":"11.75g",
"fat":"0.12g",
"protein":"0.94g"
}
},
{
"name":"Mango",
"binomial name":"Mangifera indica",
"major_producers":[
"India",
"China",
"Thailand"
],
"nutrition":{
"carbohydrates":"15g",
"fat":"0.38g",
"protein":"0.82g"
}
}
]
}
python3 main.py -i sample_2.json -o sample_2_output.csv -e fruit
fruit##binomial name | fruit##major_producers | fruit##name | fruit##nutrition##carbohydrates | fruit##nutrition##fat | fruit##nutrition##protein |
---|---|---|---|---|---|
Mangifera indica | India||China||Thailand | Mango | 15g | 0.38g | 0.82g |
Citrus x sinensis | Brazil||United States||India | Orange | 11.75g | 0.12g | 0.94g |
Malus domestica | China||United States||Turkey | Apple | 13.81g | 0.17g | 0.26g |