2024-09-24 22:31:32 发布
网友
我有一个CSV格式如下:
ID=123[DLE]KEY=test[DLE]KEY2=VAL123
其中[DLE]是"Data link escape" control character
你知道我该如何使用csv标准库吗?
是否需要编辑每一行以使其兼容?在
谢谢各位
您可以通过简单地重写分隔符来解析它(假设雪人是您的DLE):
import csv testdata='ID=123☃KEY=test☃KEY2=VAL123\nID=456☃KEY=test2☃KEY2=val456' testdataiter=testdata.splitlines() reader = csv.reader(testdataiter, delimiter='☃') for row in reader: print (','.join(row))
输出:
检查csv模块的帮助-任何方言参数都可以在reader构造函数中重写。在
要将KEY=VAL解析为dict,请更改为:
{'KEY2': 'VAL123', 'ID': '123', 'KEY': 'test'} {'KEY2': 'val456', 'ID': '456', 'KEY': 'test2'}
在Python中,可以向csv模块传递一个格式字符(csv module docs):
csv
>>> import csv >>> spamReader = csv.reader(open('eggs.csv', 'rb'), delimiter=' ', quotechar='|')
你的数据实际上不是CSV格式的,所以我放弃使用它。我要做的是编写一个生成器,对每一行进行.split('\x10'),然后对每一段进行{},然后将整个内容作为dict生成
.split('\x10')
def dgen(fin): for line in fin: yield dict(((k, v) for chunk in line.rstrip('\r\n').split('\x10') for (k, v) in chunk.split('=', 1)))
您可以通过简单地重写分隔符来解析它(假设雪人是您的DLE):
输出:
^{pr2}$检查csv模块的帮助-任何方言参数都可以在reader构造函数中重写。在
要将KEY=VAL解析为dict,请更改为:
^{3}$输出:
在Python中,可以向
csv
模块传递一个格式字符(csv module docs):你的数据实际上不是CSV格式的,所以我放弃使用它。我要做的是编写一个生成器,对每一行进行},然后将整个内容作为dict生成
.split('\x10')
,然后对每一段进行{相关问题 更多 >
编程相关推荐