将文本文件转换为Python中的字典[重复]

问题描述 投票:0回答:1

我需要将一个csv文件转换成字典。输入文件有4列,涉及小鸡Fila的食物。

我希望字典返回这样的内容:

{ “Spicy Chicken Sandwich” : (3.99,  460, 'Entrees'), “Grilled Chicken Sandwich” : (5.15, 320, 'Entrees'),  “Market Salad” : (8.19,  250,  'Salads') }.

它是项目,价格,卡路里和类型

我已经尝试了很多次了。我正在介绍python类。到目前为止,我有此代码:

 def read_file(filename):

    with open("menu1.csv") as f:

        for line in f: 

任何帮助都会很棒!

python
1个回答
1
投票

您可以使用熊猫很好地做到这一点。

考虑CSV文件,例如:

╔══════════════════════════╦══════╦═════╦═════════╗
║           Name           ║  H1  ║ H2  ║   H3    ║
╠══════════════════════════╬══════╬═════╬═════════╣
║ Spicy Chicken Sandwich   ║ 3.99 ║ 460 ║ Entrees ║
║ Grilled Chicken Sandwich ║ 5.15 ║ 320 ║ Entrees ║
║ Market Salad             ║ 8.19 ║ 250 ║ Salads  ║
╚══════════════════════════╩══════╩═════╩═════════╝
import pandas as pd

df = pd.read_csv("menu1.csv")

df = df.set_index(<column you want as keys>)

result = df.to_dict('index')

这将为您提供类似于{index -> {column -> value}}的外观,因此,将其转换为最终形式{index -> (values)},您可以进行迭代:

result = {key: tuple(val.values()) for key, val in result.items()}

输出:

{'Spicy Chicken Sandwich': (3.99, 460, 'Entrees'), 'Grilled Chicken Sandwich': (5.15, 320, 'Entrees'), 'Market Salad': (8.19, 250, 'Salads')}

© www.soinside.com 2019 - 2024. All rights reserved.