如何将CSV文件加载到a中System.Data.DataTable,根据CSV文件创建数据表?
常规的ADO.net功能是否允许这样做?
我有一个JSON文件,我想要转换为CSV文件.我怎么能用Python做到这一点?
我试过了:
import json
import csv
f = open('data.json')
data = json.load(f)
f.close()
f = open('data.csv')
csv_file = csv.writer(f)
for item in data:
csv_file.writerow(item)
f.close()
Run Code Online (Sandbox Code Playgroud)
但是,它没有用.我正在使用Django,我收到的错误是:
import json
import csv
f = open('data.json')
data = json.load(f)
f.close()
f = open('data.csv')
csv_file = csv.writer(f)
for item in data:
f.writerow(item) # ? changed
f.close()
Run Code Online (Sandbox Code Playgroud)
那么,我尝试了以下内容:
[{
"pk": 22,
"model": "auth.permission",
"fields": {
"codename": "add_logentry",
"name": "Can add log entry",
"content_type": 8
}
}, {
"pk": 23,
"model": "auth.permission",
"fields": {
"codename": "change_logentry", …Run Code Online (Sandbox Code Playgroud) 我有一个文件,可以包含3到4列数字,用逗号分隔.当空字段位于行的末尾时,将定义空字段:
1,2,3,4,5
1,2,3,,5
1,2,3
Run Code Online (Sandbox Code Playgroud)
下表是在MySQL中创建的:
+-------+--------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------+------+-----+---------+-------+ | one | int(1) | YES | | NULL | | | two | int(1) | YES | | NULL | | | three | int(1) | YES | | NULL | | | four | int(1) | YES | | NULL | | | five | int(1) | YES | | NULL | | +-------+--------+------+-----+---------+-------+
我正在尝试使用MySQL LOAD命令加载数据:
LOAD DATA …Run Code Online (Sandbox Code Playgroud) 我正在编写一个简单的导入应用程序,需要读取CSV文件,在a中显示结果DataGrid并在另一个网格中显示CSV文件的损坏行.例如,显示另一个网格中短于5个值的行.我试着这样做:
StreamReader sr = new StreamReader(FilePath);
importingData = new Account();
string line;
string[] row = new string [5];
while ((line = sr.ReadLine()) != null)
{
row = line.Split(',');
importingData.Add(new Transaction
{
Date = DateTime.Parse(row[0]),
Reference = row[1],
Description = row[2],
Amount = decimal.Parse(row[3]),
Category = (Category)Enum.Parse(typeof(Category), row[4])
});
}
Run Code Online (Sandbox Code Playgroud)
但在这种情况下,在阵列上操作非常困难.有没有更好的方法来分割价值观?
我正在尝试使用Python列表中的值创建.csv文件.当我打印列表中的值时,它们都是unicode(?),即它们看起来像这样
[u'value 1', u'value 2', ...]
Run Code Online (Sandbox Code Playgroud)
如果我遍历列表中的值,即for v in mylist: print v它们看起来是纯文本.
我可以,在每个之间放一个print ','.join(mylist)
我可以输出到文件,即
myfile = open(...)
print >>myfile, ','.join(mylist)
Run Code Online (Sandbox Code Playgroud)
但是我想输出到CSV并且在列表中的值周围有分隔符,例如
"value 1", "value 2", ...
Run Code Online (Sandbox Code Playgroud)
我找不到一种简单的方法来在格式中包含分隔符,例如我已经尝试了join语句.我怎样才能做到这一点?
我正在尝试解析csv文件并仅从特定列中提取数据.
示例csv:
ID | Name | Address | City | State | Zip | Phone | OPEID | IPEDS |
10 | C... | 130 W.. | Mo.. | AL... | 3.. | 334.. | 01023 | 10063 |
Run Code Online (Sandbox Code Playgroud)
我想只捕获特定的列,也就是说ID,Name,Zip和Phone.
我看过的代码让我相信我可以通过相应的数字调用特定的列,因此即:Name将对应2并使用迭代遍历每一行将row[2]生成第2列中的所有项目.只有它不会.
这是我到目前为止所做的:
import sys, argparse, csv
from settings import *
# command arguments
parser = argparse.ArgumentParser(description='csv to postgres',\
fromfile_prefix_chars="@" )
parser.add_argument('file', help='csv file to import', action='store') …Run Code Online (Sandbox Code Playgroud) 我pandas.to_datetime用来解析数据中的日期.Pandas默认表示日期,datetime64[ns]即使日期仅为每日日期.我想知道是否有一种优雅/巧妙的方式将日期转换为datetime.date或者datetime64[D]当我将数据写入CSV时,日期不会附加00:00:00.我知道我可以逐个元素地手动转换类型:
[dt.to_datetime().date() for dt in df.dates]
Run Code Online (Sandbox Code Playgroud)
但这真的很慢,因为我有很多行,这有点挫败了使用的目的pandas.to_datetime.有没有办法立即转换dtype整个列?或者,是否pandas.to_datetime支持精度规范,以便在处理日常数据时可以摆脱时间部分?
我有一长串以下表格清单---
a = [[1.2,'abc',3],[1.2,'werew',4],........,[1.4,'qew',2]]
Run Code Online (Sandbox Code Playgroud)
即列表中的值是不同的类型 - 浮点数,整数,字符串.如何将其写入csv文件,以便我的输出csv文件看起来像
1.2,abc,3
1.2,werew,4
.
.
.
1.4,qew,2
Run Code Online (Sandbox Code Playgroud) 我需要为Excel生成一个文件,该文件中的一些值包含多行.
那里还有非英文文本,所以文件必须是Unicode.
我现在生成的文件如下所示:(在UTF8中,非英文文本混合在一起并且有很多行)
Header1,Header2,Header3
Value1,Value2,"Value3 Line1
Value3 Line2"
Run Code Online (Sandbox Code Playgroud)
请注意,多行值用双引号括起来,其中包含正常的日常换行符.
根据我在网上发现的这应该有效,但它没有,至少没有赢得Excel 2007和UTF8文件,Excel将第3行视为第二行数据而不是第一行数据的第二行.
这必须在我客户的机器上运行,我无法控制他们的Excel版本,所以我需要一个适用于Excel 2000及更高版本的解决方案.
谢谢
编辑:我通过两个CSV选项"解决"了我的问题,一个用于Excel(Unicode,制表符分隔,字段中没有换行符),另一个用于世界其他地方(UTF8,标准CSV).
不是我想要的,但至少它是有效的(到目前为止)