【问题标题】:Write to csv and I get error : _csv.Error: sequence expected写入 csv 并出现错误:_csv.Error: sequence expected
【发布时间】:2016-01-16 00:45:20
【问题描述】:

请帮忙。当我想将我的字典 AllListInstance 写入 csv 文件时出现错误。这是我的代码:

AllListInstance= {frozenset(['OFFENSE INVOLVING CHILDREN']): [(95,), (96,), (35,), (80,), (100,)], frozenset(['BATTERY', 'THEFT']): [(173, 209), (173, 224)]}

with open('test1.csv', 'wb') as csv_file:
   for key in AllListInstance.keys():
    csv_writer = csv.writer(csv_file)
    csv_writer.writerow(len(AllListInstance[key]))
    for y in range(len(key)):
        csv_writer.writerow([x[y] for x in key])
        csv_writer.writerow(x[y] for x in AllListInstance[key])

预期输出:

5   # len(AllListInstance["OFFENSE INVOLVING CHILDREN"]) count of member
OFFENSE INVOLVING CHILDREN
95
96
35
80
100
2 # len(AllListInstance['BATTERY','THIEF']) count of member
BATTERY        THIEF
173            209
173            224

错误:

    csv_writer.writerow(len(AllListInstance[key]))
_csv.Error: sequence expected

我的预期输出的解决方案:

with open('test8.csv', 'wb') as csv_file:
  for key in AllListInstance.keys():
    csv_writer = csv.writer(csv_file)
    csv_writer.writerow([len(key),len(AllListInstance[key])])
    csv_writer.writerow(list(key))
    for x in AllListInstance[key]:
        csv_writer.writerow(list(x))

【问题讨论】:

    标签: python python-2.7 csv


    【解决方案1】:

    你传入一个单个整数

    len(AllListInstance[key])
    

    这不是一个序列,这是csv_writer.writerow() 所期望的。如果你想写一列的长度值,把它包装在一个列表中:

    csv_writer.writerow([len(AllListInstance[key])])
    

    【讨论】:

    • 下一个错误来了:csv_writer.writerow(x[y] for x in key) _csv.Error: sequence expected
    • @ErnaPiantari:再次添加[...]括号;不支持生成器表达式,列表推导的结果是。
    • 对于csv_writer.writerow([x[y] for x in key]),我的预期输出是打印字符串OFFENSE INVOLVING CHILDREN,但是使用我的代码,输出只是第一个字符O。你能给我建议吗?
    • 为什么不直接使用csv_writer.writerow(key)呢?无需在那里循环。您可以使用csv_writer.writerows(AllListInstance[key]) 为每个键写入值。
    • AllListInstance.values() 已冻结。当我打印csv_writer.writerow(key) 时,输出为frozenset(['BATTERY', 'THEFT'])。我想拆分为BATTERYTHEAF 并打印到不同的列。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 2018-04-02
    • 2015-09-28
    • 1970-01-01
    • 2022-02-03
    • 2020-01-30
    • 2018-11-08
    相关资源
    最近更新 更多