阅读字典并写入文本文件

时间:2019-04-11 20:56:16

标签: python

我现在有字典:

data = [{'position': 1, 'name':'player1:', 'number': 524}, {'position':2, 'name': 'player2:','number': 333}]

(只列出两个数字以简化问题) 我想按以下位置顺序阅读和打印它:在文本或csv文件中的“位置1”,“位置2” ...“位置n”。

类似:

position    name      number
1           player1    524
2           player2    333

我尝试过:


data = [{'position': 1, 'name':'player1', 'number': 524}, {'position':2, 'name': 'player2:','number': 333}]

keys = data[0].keys()

with open(output.csv", 'r') as output_file:
    dict_writer = csv.DictWriter(output_file, keys)
    dict_writer.writeheader()
    dict_writer.writerows(data)

似乎我应该创建一个csv而不是先打开它。另外,还有什么更好的方法吗?谢谢。

2 个答案:

答案 0 :(得分:1)

最简单的操作可能是将其读取到pandas Dataframe中,然后将其写入csv。

import pandas as pd

data = [
    {
        'position': 1,
        'name':'player1',
        'number': 524
    }, {
        'position': 2,
        'name': 'player2',
        'number': 333
    }
]

df = pd.DataFrame.from_records(data, columns=['position', 'name', 'number'])
df = df.sort_values('position')
df.to_csv('data.csv')

答案 1 :(得分:0)

使用熊猫

import pandas as pd
data = [
         {
           'position': 1,
           'name':'player1:',
           'number': 524
         }, {
           'position':2,
           'name':'player2:',
           'number': 333
         }
       ]
df = pd.DataFrame.from_records(data, columns=['position', 'name', 'number'])
df = df.sort_values('position')
df.head()