示例#1
0
def xml2csv():
    data = mycsv.getdata()

    xml = untangle.parse(data)
    header = xml.file.headers.cdata.split(",")
    header2 = [i.replace(" ", "_") for i in header]

    values_set = []

    for i in header2:
        content = "record.%s.cdata" % i
        values = []
        for record in xml.file.data.record:
            values.append(eval(content))
        values_set.append(values)
    table = np.array(values_set)
    table = [",".join(j) for j in table]

    new_set = []
    for i in range(len(table)):
        new = table[i].split(",")
        new_set.append(new)

    a = np.transpose(new_set)
    b = pd.DataFrame(data=a, columns=header)
    return b.to_csv(sys.stdout, sep=",", header=header, index=False)
def csv2html():
    header, data = mycsv.readcsv(mycsv.getdata())
    start = "<html>\n<body>\n<table>\n"
    end = "</table>\n</body>\n</html>"
    header_row = "".join(["<th>%s</th>" % i for i in header])
    header_row = "<tr>%s</tr>\n" % header_row
    data_row_set = []
    for i in data:
        data_row = "".join(["<td>%s</td>" % j for j in i])
        data_row_set.append("<tr>%s</tr>\n" % data_row)
    data_row_set = "".join(data_row_set)
    together = start + header_row + data_row_set + end
    return together
def csv2json():
    header, data = mycsv.readcsv(mycsv.getdata())
    start = '{\n'
    end = "\n}"

    header_element = ",\n".join(
        ['\t\t"%s"' % header[i] for i in range(len(header))])
    header_body = '\t"headers": [\n' + header_element + "\n\t],"

    data_body3 = []
    data_body4 = []

    for j in data:
        data_body2 = []
        for i in range(len(header)):
            data_body = '\n\t\t\t"%s": "%s"' % (header[i], j[i])
            data_body2.append(data_body)
            data_body3 = "\n\t\t{" + ",".join(data_body2) + "\n\t\t}"
        data_body4.append(data_body3)
    data_body_final = '\n\t"data": [' + ",".join(data_body4) + "\n\t]"

    together = start + header_body + data_body_final + end
    return together
示例#4
0
def csv2xml():
    header, data = mycsv.readcsv(mycsv.getdata())
    start = '<?xml version="1.0"?>\n<file>'
    end = "\n</file>"
    header2 = [i.replace(" ", "_") for i in header]
    header_body = "\n  <headers>%s</headers>" % (",".join(
        [header[i] for i in range(len(header))]))

    data_body3 = []
    data_body4 = []

    for j in data:
        data_body2 = []
        for i in range(len(header2)):
            data_body = "<%s>%s</%s>" % (header2[i], j[i], header2[i])
            data_body2.append("".join(data_body))
            data_body3 = "\n    <record>\n      %s\n    </record>" % (
                "".join(data_body2))
        data_body4.append(data_body3)
    data_body_final = "\n  <data>%s\n  </data>" % "".join(data_body4)

    together = start + header_body + data_body_final + end
    return together
示例#5
0
import mycsv
from jinja2 import Environment, PackageLoader, select_autoescape

#get data
header, data = mycsv.readcsv(mycsv.getdata())

#write HTML table
#get templates from app
environ = Environment(loader=PackageLoader('csv2html', 'templates'),
                      autoescape=select_autoescape(['html', 'json']))

#get template from available templates
template = environ.get_template('testJSON')

print(template.render(header=header, data=data))
示例#6
0
import untangle
import xmltodict
import mycsv
# get data

# xml = untangle.parse(data_string)
xml = untangle.parse(mycsv.getdata())



csv_string = xml.file.headers.cdata+"\n"
# replace _ in headers with spaces
csv_string = csv_string.replace('_',' ')

for recordIndex, record in enumerate(xml.file.data.record):
    for childIndex, child in enumerate(record.children):
        if childIndex < len(xml.file.data.children[recordIndex].children)-1 and recordIndex < len(xml.file.data.children):
            #continue row
            csv_string += record.children[childIndex].cdata+ ","
        elif childIndex == len(xml.file.data.children[recordIndex].children)-1 and recordIndex < len(xml.file.data.children)-1:
            #finish row
            csv_string += record.children[childIndex].cdata + "\n"
        else:
            #finish file
            csv_string += record.children[childIndex].cdata


print(csv_string)
示例#7
0
def xml2csv(data):
    xml = untangle.parse(data)
    headers = xml.file.data.record[0].get_elements()

    head = []
    file = open("temp.csv", 'a').close()
    file = open("temp.csv", "w")
    csv_writer = csv.writer(file)
    for node in headers:
        name = node._name.replace("_", " ")
        head.append(name)
    csv_writer.writerow(head)

    xmldata = xml.file.data.record
    for node in xmldata:
        curr = node.get_elements()
        vals = []
        for v in curr:
            vals.append(v.cdata)
        csv_writer.writerow(vals)

    file.close()
    file = open("temp.csv", 'r')
    print(file.read(), end="")
    file.close()
    os.remove("temp.csv")


xml2csv(mycsv.getdata())
示例#8
0
# https://untangle.readthedocs.io/en/latest/
# https://github.com/stchris/untangle
import untangle
import mycsv

xmltxt = mycsv.getdata()

xml = untangle.parse(xmltxt)
示例#9
0
"""

import mycsv


def csv2xml(data):
    print("<?xml version=\"1.0\"?>")
    print("<file>")
    header, data = mycsv.readcsv(data)
    print("<headers>", end="")
    h = []
    for head in header:
        h.append(head)
    print(",".join(h), end="")
    print("</headers>")

    print("<data>")
    for row in data:
        print("<record>")
        for h, val in zip(header, row):
            r = "<" + h + ">" + val + "</" + h + ">\n"
            r = r.replace(" ", "_")
            print(r, end="")
        print("</record>")

    print("</data>")
    print("</file>")


csv2xml(mycsv.getdata())
示例#10
0


def csv2html(data):
    print("<html>")
    print("<body>")
    print("<table>")
    header, data = mycsv.readcsv(data)
    print("<tr>", end="")
    for head in header:
        print("<th>" + head + "</th>", end="")
    print("</tr>")    
    for row in data:
        print("<tr>", end="")
        for val in row:
            print("<td>" + val + "</td>", end="")
        print("</tr>")  
    print("</tr>" )    
    print("</body>")
    print("</table>")
    print("</html>")
   






csv2html(mycsv.getdata())

示例#11
0
"""

import mycsv
import json
import csv
import os


def json2csv(data):

    jsondata = json.loads(data)
    header = jsondata["headers"]
    file = open("temp.csv", 'a').close()
    file = open("temp.csv", "w")
    csv_writer = csv.writer(file)
    csv_writer.writerow(header)
    nodes = jsondata["data"]
    for node in nodes:
        vals = []
        for key, value in node.items():
            vals.append(value)
        csv_writer.writerow(vals)
    file.close()
    file = open("temp.csv", 'r')
    print(file.read(), end="")
    file.close()
    os.remove("temp.csv")


json2csv(mycsv.getdata())
示例#12
0
import json
import mycsv

js = json.loads(mycsv.getdata())

headers = js['headers']
headcount = 0
for head in headers:
    if (headcount == 0):
        print(head, end='')
    else:
        print("," + head, end='')
    headcount = headcount + 1
print()

data = js['data']

for row in data:
    colcount = 0
    for col in row.values():
        if (colcount == 0):
            print(col, end='')
        else:
            print("," + col, end='')
        colcount = colcount + 1
    print()
示例#13
0
import mycsv
import json
jsonString = mycsv.getdata()
jasonData = json.loads(jsonString)
headers = jasonData['headers']
data =jasonData['data']

output = ''
for headIndex, head in enumerate(headers):
    if headIndex < len(headers)-1:
        # print with comma
        output+=head+","
    else:
        # move to next line
        output+=head+"\n"
for datumIndex, datum in enumerate(data):
    if datumIndex < len(data)-1:
        #print, without quotes, with comma
        for peiceIndex, peice in enumerate(datum):
            if peiceIndex < len(datum)-1:
                #add an entry
                output+=datum[peice]+","
            elif  peiceIndex == len(datum)-1:
                #finish non-last line
                output+=datum[peice]+"\n"
    else:
        #reached last row
        for peiceIndex, peice in enumerate(datum):
            if peiceIndex < len(datum)-1:
                #add an entry
                output+=datum[peice]+","