python - 在 csv 的单个单元格中写入多个值

标签 python csv

对于每个用户,我都有他参加的事件列表。 例如鲍勃:[事件1,事件2,...]

我想将其写入csv文件中。我创建了一个字典(键 - 用户和值 - 事件列表) 我是用csv写的。以下是示例输出

username, frnds
"abc"     ['event1','event2']

其中用户名是第一列,frnds是第二列

这是代码

writer = csv.writer(open('eventlist.csv', 'ab'))
for key, value in evnt_list.items():
    writer.writerow([key, value])

当我阅读 csv 时,我没有直接获取列表。但我通过以下方式得到它

['e','v','e','n','t','1','','...]

我还尝试直接在 csv 中写入列表,但在阅读时得到相同的输出。

我想要的是一个单元格中的多个值,这样当我读取一行的列时,我可以获得所有事件的列表。

e.g
colA  colB
user1,event1,event2,...

我认为这并不难,但不知何故我不明白。

###阅读

我正在以下内容的帮助下阅读它

codereader = csv.reader(open("eventlist.csv")) 
reader.next() 
for row in reader: 
    tmp=row[1] 
    print tmp # it is printing the whole list but 
        print tmp[0] #the output is [ 
        print tmp[1] #output is 'e' it should have been 'event1'
        print tmp[2] #output is 'v' it should have been 'event2'

最佳答案

您必须将值格式化为单个字符串:

with open('eventlist.csv', 'ab') as f:
    writer = csv.writer(f, delimiter=' ')
    for key, value in evnt_list.items():
        writer.writerow([key, ','.join(value)])

导出为

key1 val11,val12,val13
key2 val21,val22,val23

阅读:这里您必须记住,您已将 Python 列表转换为格式化字符串。因此你不能使用标准的csv工具来读取它:

with open("eventlist.csv") as f:
    csvr = csv.reader(f, delimiter=' ') 
    csvr.next() 
    for rec in csvr: 
        key, values_txt = rec 
        values = values_txt.split(',')
        print key, values

按预期工作。

关于python - 在 csv 的单个单元格中写入多个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14874965/

相关文章:

python - Selenium:FirefoxProfile 失败,未找到异常

python - 读取压缩在一个文件中的多个 csv 文件

python - 在 python 中总结一个 csv 列

python - 如何使用 Jython 将 Python 集成到 Scala 中

python - 域名上的 IP 地址集群

python - Django 项目 models.py 与应用程序 models.py

python-3.x - 如何在 Python 中将制表符分隔的文本文件转换为 csv 文件

r - 使用 R 和眼动仪数据创建热图

iphone - 从 csv 文件加载数据 (iphone SDK)

python - 带日期的 matplotlib 居中条形图