如何使用 header 映射在 python 中编写元组列表
How to write a list of tuple in python with header mapping
我必须处理 python 元组列表,其中每个元组包含 header 名称,如下所示 - 我希望所有元组都映射到该元组中的相应 header。
[[(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 中,在 MS Excel 中如下所示 -
提前致谢。
我终于找到了解决方法-
将嵌套列表转换为字典并使用 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)
但它改变了列的顺序。如果需要先前的订单,我使用 header 声明并在 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 元组列表,其中每个元组包含 header 名称,如下所示 - 我希望所有元组都映射到该元组中的相应 header。
[[(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 中,在 MS Excel 中如下所示 -
提前致谢。
我终于找到了解决方法-
将嵌套列表转换为字典并使用 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)
但它改变了列的顺序。如果需要先前的订单,我使用 header 声明并在 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)
这解决了我的问题..