gpt4 book ai didi

python - CSV 在 Python 中听写

转载 作者:行者123 更新时间:2023-11-28 22:18:17 24 4
gpt4 key购买 nike

我有一个类似 csv 的文件,想在 Python 中转换为字典。这是示例文件:

file start:
...
...
[section-1] # basically a setup info with <key-value> pair
date,2/16/2018
label,test3
size,25
...
[section-2] # contains test parameters and data
NO,parameter1,parameter2
1,50,30
2,-20,32
...
...
file end

我大概知道如何处理这个文件,目标是轻松访问每条记录。可能像 dict 这样的东西:

{'date':2/16/2018,
'label':test3,
'size':25,
'data':[{'NO':1,'parameter1':50,'parameter2':30}
{'NO':2,'parameter2':-20,'parameter2',32}]
}

用例是我想提取这些数据并将其加载到数据库中。 [section-1] 数据将转到顶级表。并且[section-2]数据将根据[section-1]信息加载到子表中。

我是 Python 的新手。您认为这是转换此文件的正确方向吗?有人可以告诉我该怎么做吗?

谢谢

最佳答案

如果是我,我会使用 str.startswith('[') 将文件解析成多个部分, 然后使用 generator function将结果行传递给 csv.reader()csv.DictReader()分别针对这两个部分。

这是一个例子:

from csv import reader, DictReader
from pprint import pprint

def lines_until_section_mark(f):
for line in f:
if line.startswith('['):
break
if line.strip():
yield line

with open('cfg.txt') as f:
# Eat until first section mark
for line in lines_until_section_mark(f):
pass

# Construct first dictionary from first sectoin
d = dict(reader(lines_until_section_mark(f)))

# Construct second dictionary from second section
d['data'] = list(DictReader(lines_until_section_mark(f)))

pprint(d)

输入文件:

[section-1] # basically a setup info with <key-value> pair
date,2/16/2018
label,test3
size,25

[section-2] # contains test parameters and data
NO,parameter1,parameter2
1,50,30
2,-20,32

输出:

{'data': [{'NO': '1', 'parameter1': '50', 'parameter2': '30'},
{'NO': '2', 'parameter1': '-20', 'parameter2': '32'}],
'date': '2/16/2018',
'label': 'test3',
'size': '25'}

关于python - CSV 在 Python 中听写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50648481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com