首页 新闻 会员 周边

PYTHON3中字典用str()转为字符串,再用eval()转回字典后为什么不能调用字典的方法?

-1
[待解决问题]

求大神指教
a = {'123': 123} # 定义一个字典
b = str(a) # 转为字符串(通过type()查看)
c = eval(b) # 再转回字典(通过type()查看)
for i in a.keys(): # a可以调用字典的方法
pass
for i in b.join(): # b可以调用字符串的方法
pass
for i in c: # c为什么只有两个not和par,分别是啥意思,为什么不能调用字典的方法?
pass

xusuns的主页 xusuns | 菜鸟二级 | 园豆:202
提问于:2018-02-04 12:43
< >
分享
所有回答(2)
1

我这里用Python 3.6.4测试没这个问题

dudu | 园豆:30948 (高人七级) | 2018-02-04 14:54
1

不是不能调用,而是IDE没有提示你这个选项罢了,你直接使用 Command Line ,你发现这 a 和 c 都是dict 类型,都是可以使用,你如果想要IDE 提示的话,用这个:

import ast

a = {'123': 123}  # 定义一个字典
b = str(a)  # 转为字符串(通过type()查看)
c = ast.literal_eval(b)  # 再转回字典(通过type()查看)


for i in a.keys():  # a可以调用字典的方法
    pass

for i in b.join():  # b可以调用字符串的方法
    pass

for i in c:  # c为什么只有两个not和par,分别是啥意思,为什么不能调用字典的方法?
    pass
BUTTERAPPLE | 园豆:3190 (老鸟四级) | 2018-02-04 22:55
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册