Я хочу ввести словарь как словарь типов

avatar
kirihadinomoyet
9 августа 2021 в 03:14
41
2
0

Предположим, я ввожу это

{'Name':'Rick', 'Country':'UK'}

Это будет восприниматься как строка

Какова процедура установки типа в качестве словаря?

Источник
Vishal Singh
9 августа 2021 в 03:20
1

используйте json.loads

tdelaney
9 августа 2021 в 03:36
0

Это зависит от того, куда вы его вводите. Если он введен в файл .py, то это строковый литерал Python и уже dict, как только модуль загружается. Если читается из файла или читается из стандартного ввода, это, ну, все, что вы хотите. Если вы сделаете правило, что ввод является литералом Python, то ast.iteral_eval проанализирует его. Если правило состоит в том, что это JSON, то json.loads подойдет.

Ответы (2)

avatar
donkopotamus
9 августа 2021 в 03:34
1

Вы можете использовать literal_eval вместо того, чтобы искажать кавычки и применять json.loads

>>> ast.literal_eval("{'Name': 'Rick', 'Country': 'UK'}")
{'Country': 'UK', 'Name': 'Rick'}

literal_eval может использоваться для оценки строк, которые выражают любой из основных типов, таких как tuple, dict, строки и числа и т. д.

avatar
user15801675
9 августа 2021 в 03:34
1

Вы можете использовать ast.literal_eval()

import ast
x=input()
s=ast.literal_eval(x)
print(s)

Вывод:

{'a':1,'b':2}
{'a': 1, 'b': 2}