#python #python-3.x #csv #dictionary
#python #python-3.x #csv #словарь
Вопрос:
Я в основном пытаюсь преобразовать csv-файл в словарь с моими собственными именованными ключами, но по какой-то причине я получаю синтаксическую ошибку. Я использую последнюю версию Python btw. Вот как выглядит файл csv:
1|apple|0.50|60
2|orange|0.4|55
3|mango|0.6|33
Я хочу создать словарь такой формы для каждого фрукта:
dictionary={
'1':{'fruit':'apple',
'price':0.5,
'stock':60},
'2':{...},
'3':{...},
}
Вот моя попытка:
with open('fruit.csv', mode="rt", encoding="utf8") as f:
reader = csv.reader(f, delimiter='|')
for row in reader:
product={row[0]:{'fruit'=row[1],'price'=row[2],'stock'=row[3]}}
print(product)
Но, похоже, это не работает: (
Я новичок в Python и все еще пытаюсь учиться.
Спасибо всем!
Ответ №1:
Ваш синтаксис действительно неправильный.
Вы, вероятно, ищете
products = {}
with open("fruit.csv", mode="rt", encoding="utf8") as f:
reader = csv.reader(f, delimiter="|")
for row in reader:
products[row[0]] = {"fruit": row[1], "price": row[2], "stock": row[3]}
print(products)
Комментарии:
1. Ах, да, я использовал = вместо: Это было быстрое решение, большое вам спасибо!
Ответ №2:
При работе с CSV мы используем ‘=’ вместо ‘:’. Ваш синтаксис неверен. Попробуйте это.
import csv
di = {}
with open('fruit.csv', mode="rt", encoding="utf8") as f:
reader = csv.reader(f, delimiter='|')
for row in reader:
di[row[0]] = {'fruit':row[1],'price':row[2],'stock':row[3]}
print(di)
Комментарии:
1. Да, я допустил глупую синтаксическую ошибку. Спасибо, что указали на это!
Ответ №3:
Вы должны сделать так
product = {}
for row in reader:
product[row[0]] = {'fruit'=row[1],'price'=row[2],'stock'=row[3]}
Комментарии:
1. По-прежнему недопустимый синтаксис. Ключи и значения словаря разделяются двоеточиями.