如何解决通过数组将字典写入到csv文件中,并通过数组插入新行
我正在尝试在要写入此数据的csv文件中插入新行。数据是
data = [[{'Hi': 'O'},{'mr': 'O'},{'you': 'O'},{'president': 'O'},{'USA': 'Country'},{'for': 'O'},{'answering': 'O'},{'football': 'O'},{'questions': 'O'},{'music': 'JAZZ'}],[{'Hi': 'O'},{'You': 'O'},{'have': 'O'},{'granted': 'STATE'},{'purchased': 'O'},{'GHC3': 'O'},{'Bundle': 'O'} {'248803151': 'O'}]]
这是我的代码,但是我不确定如何重新编码以容纳数据中每个数组的新行。
def convert_to_biolu(dico,biolu_list = defaultdict(list)): #dico here is output_data
for dict_item in dico: # you can list as many input dicts as you want
for key,value in dict_item.items():
if value not in biolu_list[key]:
biolu_list[key].append(value)
return biolu_list
def save_to_file(path,data_):
data_ = [convert_to_biolu(item) for item in data][-1]
with open(path,'w',newline='') as file:
fieldnames = ['word','label']
writer = csv.DictWriter(file,fieldnames=fieldnames)
writer.writeheader()
for key,val in data_.items():
writer.writerow({'word': key,'label': " ".join(val)})
解决方法
您可以在不使用模块的情况下编写csvs。
我喜欢这样自己做:
def write_csv_with_spaces(data,filename):
with open(FILENAME,'w+') as file:
for list in data:
for dict in list:
file.write(','.join([str(key) + ',' + str(value) for key,value in dict.items()]) + '\n')
file.write('\n')
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。