GVKun编程网logo

Javascript:解析每个 CSV 列以分隔 JSON(java解析csv文件第一列)

2

本文将带您了解关于Javascript:解析每个CSV列以分隔JSON的新内容,同时我们还将为您解释java解析csv文件第一列的相关知识,另外,我们还将为您提供关于Azure数据工厂将包含多个条目的

本文将带您了解关于Javascript:解析每个 CSV 列以分隔 JSON的新内容,同时我们还将为您解释java解析csv文件第一列的相关知识,另外,我们还将为您提供关于Azure 数据工厂将包含多个条目的多个 json 转换为 csv 和/或 concat csv、CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:'diff.csv' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:、Flask 处理由 csv 模块即时上传的 csv 我只需要一种使用 _csv.Error: iterator should return strings, not int (did you open the file in text mode?) 模块动态处理 csv 文件的方法、Freemarker CSV 生成 - 带有中文文本的 CSV 会截断 csv 内容的实用信息。

本文目录一览:

Javascript:解析每个 CSV 列以分隔 JSON(java解析csv文件第一列)

Javascript:解析每个 CSV 列以分隔 JSON(java解析csv文件第一列)

对于这个任务,我推荐使用 lodash。在 csttojson 之后试试这个脚本

const _ = require('lodash')

const arr = [{ invoiceNumber: 'test-1',taxNumber: '00000000' },{ invoiceNumber: 'test-2' }];
console.log(_.flatMap(arr,item=>_.map(_.toPairs(item),d => _.fromPairs([d]))))

Azure 数据工厂将包含多个条目的多个 json 转换为 csv 和/或 concat csv

Azure 数据工厂将包含多个条目的多个 json 转换为 csv 和/或 concat csv

如何解决Azure 数据工厂将包含多个条目的多个 json 转换为 csv 和/或 concat csv

使用 Azure 数据工厂我想实现两件类似的事情。 1-) 不同文件夹下的 blob 容器中的许多文件(csv 等),我想从每个文件中取出第一行(这是标题,在某些情况下删除多个起始行)并将所有文件中的所有文件都连接成一个文件也在 blob 中 2-) 许多 json 文件(每个包含多个 json 但所有文件都在同一文件夹中),我还想将它们转换为单个 csv 文件(连接所有 csv 版本的 json 文件) 然后我们将使用批量插入或 openrowset 等将该单个文件导入到 sql server 或突触表中。导入部分我们让它工作了。 将不同目录下的多个文件转成csv concat后,如何将多个文件concat成一个或类似的多个json文件。

很少有插件 假设 5 个 csv 文件是新的,我将访问 sql server 数据库并查看这些文件是否已导入,假设只有 3 个未导入,sql server 将返回一个结果集,并添加一个唯一的整数文件 ID 和文件名。 在concat csv中,第一列是我们从数据库中获取的fileid,该列在csv中不存在,json文件的概念类似,每个json文件包含多条记录,并且fileid将在同一条记录中重复concat csv 文件创建期间的 json 文件

同样在根目录的同一个 blob 中有多个文件夹,每个文件夹对应一种文件类型。在该文件夹中,添加新文件时会创建许多子文件夹(多级)。 当我们在 30 分钟前运行导入过程时,我们需要一种方法来检测自上次导入以来添加到子文件夹结构中的所有新文件

此解决方案必须快速高效,并且将成为我们 ADF 管道的一部分

CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:'diff.csv' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:

CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:'diff.csv' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:

如何解决CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:''diff.csv'' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:

我正在开发一个简单的 Tkinter GUI 程序,该程序显示 2 个 CSV 文件之间的不同行。我希望标题包含在“diff.csv”中

diff.csv 输出:

hits_data,2021-03-23T16:48:50.299Z,2021-03-23T16:48:50.200Z,43.118419647,-77.613418579,176.10,2,00,461.837500,461.837662,0.000,-50.1,0.0,1,hits_data,2021-03-23T16:48:48.914Z,2021-03-23T16:48:48.800Z,176.00,463.612500,463.612390,-72.6,2021-03-23T16:48:54.534Z,2021-03-23T16:48:54.500Z,43.118415833,175.80,445.500000,445.499915,-73.9,5777000.0,2021-03-23T16:49:13.758Z,2021-03-23T16:49:13.700Z,43.118412018,-77.613410950,174.70,395.593750,395.595406,-81.8,2021-03-23T16:49:00.960Z,2021-03-23T16:49:00.900Z,43.118412019,175.70,463.300000,463.299637,-68.3,212000.0,

我需要帮助找到一种方法来编写 csv1 或 csv2 的标头(文件将具有相同的标头)。

''diff.csv'' 想要的输出:

row_type,mission_id,system_id,sys_date_time,gps_date_time,lat_dd,lon_dd,alt_m,gps_speed_mph,gps_status,trans_uid,freq_cluster_mhz,freq_raw_mhz,bandwidth_khz,RSSi_dbm,snr_dbm,modulation,type,duration_s,hit_count,slot_id,slot_status,attention,attention_group,attention_name,call_id
hits_data,

问题可能出在哪里:

读取“csv1.csv”和“csv2.csv”,然后将不同的行写入“diff.csv”。我在这里找到了这个特定的代码:

https://www.edureka.co/community/53649/python-script-to-compare-2-files

def compare1():
    with open(''csv1.csv'',''r'') as file1:
        with open(''csv2.csv'',''r'') as file2:
            difference = set(file1).difference(file2)
            with open(''diff.csv'',''w'') as file_out:
                for row in difference:
                    file_out.write(row)

完整代码在这里:

from tkinter import filedialog
from tkinter import *
import shutil
import pandas as pd
from collections import defaultdict
import csv

def gui():

    def button_browse_callback():

        filename = filedialog.askopenfilename()
        src = filename
        dst = "csv1.csv"
        shutil.copy(src,dst)
        entry.delete(0,END)
        entry.insert(0,filename)

    def button_browse_callback2():
        filename2 = filedialog.askopenfilename()
        src = filename2
        dst = "csv2.csv"
        shutil.copy(src,dst)
        entry2.delete(0,END)
        entry2.insert(0,filename2)

    def compare1():
        with open(''csv1.csv'',''r'') as file1:
            with open(''csv2.csv'',''r'') as file2:
                difference = set(file1).difference(file2)
                with open(''diff.csv'',''w'') as file_out:
                    for row in difference:
                        file_out.write(row)


    def parse1():
        dataset = pd.read_csv(''diff.csv'',header=None)
        ftCol = dataset.iloc[0:,0].values
        write(ftCol)


    def parse2():
        dataset = pd.read_csv(''diff.csv'',header=None)
        ftCol = dataset.iloc[:,4].values
        write(ftCol)

    def parse3():
        dataset = pd.read_csv(''diff.csv'',5].values
        write(ftCol)

    def parse4():
        dataset = pd.read_csv(''diff.csv'',6].values
        write(ftCol)

    def parse5():
        dataset = pd.read_csv(''diff.csv'',7].values
        write(ftCol)

    def parse6():
        dataset = pd.read_csv(''diff.csv'',11].values
        write(ftCol)

    def parse7():
        dataset = pd.read_csv(''diff.csv'',12].values
        write(ftCol)

    def parse8():
        dataset = pd.read_csv(''diff.csv'',14].values
        write(ftCol)

    def parse9():
        dataset = pd.read_csv(''diff.csv'',19].values
        write(ftCol)

    def write(*message,end = "\\n",sep = " "):
        text = ""
        for item in message:
            text += "{}".format(item)
            text += sep
        text += end
        Console.insert(INSERT,text)

    def clear():
        Console.delete(1.0,END)

    root = Tk()
    root.title(''CSV Compare'')
    root.configure(background=''#3A3B3C'',width=10,height=10,padx=6,pady=7)
    frame = Frame(root,background=''#3A3B3C'')
    frame.pack()
    variable = StringVar(root)
    root.resizable(width=False,height=False)


    separator = Frame(root,height=2,bd=1,relief=SUNKEN)
    statusText = StringVar(root)
    statusText.set("Insert CSV files then press Go")
    entry = Entry(root,width=110)
    message = Label(root,textvariable=statusText,background=''lightgrey'')
    entry2 = Entry(root,width=110)
    button_go = Button(root,text="Go",command=compare1,background=''orange'',height=4)
    button_exit = Button(root,text="Exit",command=sys.exit,background=''#fed8b1''
                         )
    button_parse = Button(root,text=''System Date'',command=parse1)
    button_parse2 = Button(root,text=''GPS Date'',command=parse2)
    button_parse3 = Button(root,text=''Latitude'',command=parse3)
    button_parse4 = Button(root,text=''Longitude'',command=parse4)
    button_parse5 = Button(root,text=''alt_m'',command=parse5)
    button_parse6 = Button(root,text=''Freq Cluster'',command=parse6)
    button_parse7 = Button(root,text=''Freq Raw'',command=parse7)
    button_parse8 = Button(root,text=''RSSi_dbm'',command=parse8)
    button_parse9 = Button(root,text=''Hit count'',command=parse9)
    button_clear = Button(root,text=''Clear'',background=''lightblue'',command=clear)
    b1 = Button(root,text="First CSV",command=button_browse_callback,background=''#fed8b1'',)
    b2 = Button(root,text="Second CSV",command=button_browse_callback2,background=''#fed8b1'')
    separator2 = Frame(root,relief=SUNKEN)
    separator3 = Frame(root,relief=SUNKEN)
    statusText2 = StringVar(root)
    message2 = Label(root,textvariable=statusText2,background=''lightgrey'')
    Console = Text(root,height=15,width=60)
    message.pack()

    separator.pack(fill=X,padx=110,pady=5)

    b1.pack(side=TOP,anchor=NW,padx=20,pady= 10)

    entry.pack(side=TOP,padx=20)

    b2.pack(side=TOP,pady= 10)

    entry2.pack(side=TOP,padx=20)

    button_go.pack(pady=6)

    b2.pack()

    statusText2.set("Extract Data from diff.csv")

    separator3.pack(fill=X,padx=90,pady=5)

    message2.pack()

    separator2.pack(fill=X,pady=5)
    Console.pack()
    variable.set("Data Type")
    button_clear.pack(pady=4,padx=5)
    button_parse.pack(pady=4,side=LEFT,padx=5)
    button_parse2.pack(pady=4,padx=5)
    button_parse3.pack(pady=4,padx=5 )
    button_parse4.pack(pady=4,padx=5 )
    button_parse5.pack(pady=4,padx=5 )
    button_parse6.pack(pady=4,padx=5 )
    button_parse7.pack(pady=4,padx=5 )
    button_parse8.pack(pady=4,padx=5)
    button_parse9.pack(pady=4,padx=5)
    button_exit.pack(side=LEFT,padx=15)
    root.maxsize(800,670);
    root.minsize(800,670);
    root.mainloop()

gui()

GUI空白图片:

https://i.imgur.com/202NCCQ.png

解决方法

正如我在您的代码中看到的,您只将差异写入输出文件。您应该尝试在 compare1() 函数中的 for 语句之前添加这一行:

file_out.write(file1.readline())

Flask 处理由 csv 模块即时上传的 csv 我只需要一种使用 _csv.Error: iterator should return strings, not int (did you open the file in text mode?) 模块动态处理 csv 文件的方法

Flask 处理由 csv 模块即时上传的 csv 我只需要一种使用 _csv.Error: iterator should return strings, not int (did you open the file in text mode?) 模块动态处理 csv 文件的方法

如何解决Flask 处理由 csv 模块即时上传的 csv 我只需要一种使用 _csv.Error: iterator should return strings, not int (did you open the file in text mode?) 模块动态处理 csv 文件的方法

简单地说,我需要处理上传的文件而不将其保存在服务器上

使用 makemigrations 在 cli 脚本中工作一切正常,


使用带有通过ajax请求从数据发送的文件的flask open() 函数和 open() 方法都没有帮助处理 csv

open 本身抛出异常

  1. stream.read()
  1. csv_f = open(request.files[''csvfile''].stream,''rb'')

使用 TypeError: expected str,bytes or os.pathLike object,not SpooledTemporaryFile 我可以打印它

  1. .read()
  1. csv_f = request.files[''csvfile''].stream.read()
  2. data = csv.reader(csv_f,delimiter = '','')
  3. print(csv_f)

但迭代也会抛出异常

  1. b''...''
  1. for row in data:

我只需要一种使用 _csv.Error: iterator should return strings,not int (did you open the file in text mode?) 模块动态处理 csv 文件的方法

解决方法

我发现了问题

文件将作为二进制流而不是普通文本抛出请求

这就是为什么它有一个读取方法但在迭代时没有用

我不得不使用 .decode() 像这样

  1. request.files[''csvfile''].stream.read().decode("utf-8")

而不是这个 request.files[''csvfile''].stream.read()

Freemarker CSV 生成 - 带有中文文本的 CSV 会截断 csv 内容

Freemarker CSV 生成 - 带有中文文本的 CSV 会截断 csv 内容

如何解决Freemarker CSV 生成 - 带有中文文本的 CSV 会截断 csv 内容

我有一个非常奇怪的问题。我正在使用 Java 8、Struts2 和 Freemarker 2.3.23 生成 csv 和 html 文件格式的报告(via.csv.ftl 和 .html.ftl 模板均以 utf-8 编码保存),数据来自 postgres 数据库。 数据里面有汉字,当我生成html格式的报告时,很好,很完整,汉字显示正常。但是当报告在 csv 中生成时,我观察到:

  1. 如果我使用 -Dfile.encoding=UTF-8 VM 选项运行应用程序,中文字符会正确生成但报告不完整(即文本在近端部分被特别截断)
  2. 如果我运行应用程序没有 -Dfile.encoding=UTF-8 VM 选项,中文字符显示在问号 (?????) 中,但报告是完整的

此外,该应用使用 StringWriter 将数据写入 csv 和 html 模板。

那么,可能是什么问题?我是否达到了 Java 字符限制?我也没有在日志中看到错误。感谢您的帮助。提前致谢。

更新:

StringWriter 返回整个数据,但是当将数据写入 OutputStream 时,这是一些数据丢失的地方。

另一个更新:

看起来问题出在 contentLength 上(因为应用程序是一个 web 应用程序,并且 csv 是作为文件下载类型生成的)是使用 String.length() 从数据作为字符串生成的。 String.length() 方法在应该有更多值时返回更少的值。也许这与中文字符有关,这就是为什么报告的长度值较少的原因。

解决方法

我能够通过使用 String.getBytes("UTF-8").length 解决 contentLength 的问题

关于Javascript:解析每个 CSV 列以分隔 JSONjava解析csv文件第一列的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于Azure 数据工厂将包含多个条目的多个 json 转换为 csv 和/或 concat csv、CSV 差异查找器不包括输出文件中的标题 diff.csv 输出:'diff.csv' 想要的输出:问题可能出在哪里:完整代码在这里:GUI空白图片:、Flask 处理由 csv 模块即时上传的 csv 我只需要一种使用 _csv.Error: iterator should return strings, not int (did you open the file in text mode?) 模块动态处理 csv 文件的方法、Freemarker CSV 生成 - 带有中文文本的 CSV 会截断 csv 内容等相关知识的信息别忘了在本站进行查找喔。

本文标签: