Como você considera a entrada de um usuário como flutuante?

Estou executando o Python 2.7.10. Eu tenho o seguinte bloco de código de um programa em que estou trabalhando.

with open('inventory.txt', 'r+') as f:
  inventory = {}
  while True:
    item = raw_input('Item: ')
    inventory[item] = raw_input('Price: ')
    if item == '':
      del inventory['']
      break

  inv = str(inventory)
  f.write(inv).rstrip()
  print inventory
  print inv
  print f.read()

O que ele faz é solicitar ao usuário um item e preço e, em seguida, armazena todos eles como pares de chave / valor e, em seguida, grava esse dicionário final em um segundo arquivo de texto. Na linha 5, no entanto, parece ser o único tipo de entrada, exceto que há uma string. Eu tentei cercar oraw_input por umflutuador() e tentou criar variáveis extras sem sucesso. Consegui agrupar o raw_input em umint () e funcionou, então me jogou fora

Quando altero a linha 5 para inventário [item] = flutuante (raw_input ('Price:')), recebo o seguinte erro:

File "C:\Users\Jarrall\Desktop\store\script.py", line 5, in <module>
inventory[item] = float(raw_input('Price: '))
ValueError: could not convert string to float: 

O que devo alterar sobre o código para que, quando um usuário insira um valor numérico na linha 5, ele salve no dicionário como tal, em vez de uma string (atualmente)?

questionAnswers(1)

yourAnswerToTheQuestion