如何使用标头映射在python中编写元组列表

Posted

技术标签:

【中文标题】如何使用标头映射在python中编写元组列表【英文标题】:How to write a list of tuple in python with header mapping 【发布时间】:2015-12-31 03:16:25 【问题描述】:

我必须处理 python 元组列表,其中每个元组都包含以下标题名称-我希望所有元组都将映射到该元组中的相应标题。

    [[(u'Index', u' Broad Market Indices :')],
    [(u'Index', u'CNX NIFTY'), (u'Current', u'7,950.90'), (u'% Change', u'0.03'), (u'Open', u'7,992.05'), (u'High', u'8,008.25'), (u'Low', u'7,930.65'), (u'Prev. Close', u'7,948.90'), (u'Today', u''), (u'52w High', u'9,119.20'), (u'52w Low', u'7,539.50')],
    [(u'Index', u'CNX NIFTY JUNIOR'), (u'Current', u'19,752.40'), (u'% Change', u'0.73'), (u'Open', u'19,765.10'), (u'High', u'19,808.25'), (u'Low', u'19,629.50'), (u'Prev. Close', u'19,609.75'), (u'Today', u''), (u'52w High', u'21,730.80'), (u'52w Low', u'16,271.45')]]

现在想将此列表写入 csv 中,如下所示 -

提前致谢。

【问题讨论】:

你能把你试过的东西贴在这里吗,看起来你只是在问代码 谢谢,我尝试了一些像 ***.com/questions/15578331/… 这样的 csv 编写器,但我不知道如何进行标头映射。 【参考方案1】:

我终于找到了解决方法-

将嵌套列表转换为字典并使用dictwriter-

import csv
my_d = []
for i in datalist:
    my_d.append(x:y for x,y in i)

with open("file.csv",'wb') as f:
   # Using dictionary keys as fieldnames for the CSV file header
   writer = csv.DictWriter(f, my_d[1].keys())
   writer.writeheader()
   for d in my_d:
      writer.writerow(d)

但它改变了列的顺序。如果需要以前的订单,我使用标题声明并在 dictwrites 中使用。

headers = [u'Index', u'Current', u'% Change', u'Open', u'High', u'Low', u'Prev. Close', u'Today', u'52w High', u'52w Low']

如下使用

   writer = csv.DictWriter(f, headers)

这解决了我的问题..

【讨论】:

以上是关于如何使用标头映射在python中编写元组列表的主要内容,如果未能解决你的问题,请参考以下文章

Python面试必考重点之列表,元组和字典第四关——编写一个函数(不要使用python模块的函数),打乱列表元素的顺序/如何对列表元素进行随机排列

如何使用python中的映射函数将项目从一个列表减去另一个列表

Python元组和序列区别是啥?

如何在 python 3.7 中编辑 JWT 标头?

如何在 Python 中绘制元组列表?

如何在python中切片元组列表?