提问者:小点点

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


我需要将csv文件转换为字典。输入文件是4列,关于Chick 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: 

任何帮助将是惊人的!


共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的内容-

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

输出:

{'辣鸡三明治':(3.99,460,'主菜'),'烤鸡三明治':(5.15,320,'主菜'),'市场沙拉':(8.19,250,'沙拉')}