【发布时间】:2021-07-15 22:19:30
【问题描述】:
我有这个问题:我想列出一个目录中的所有文件名,然后在左边用数字打印它们,让用户选择要使用的文件。数字在那里是因为它们与列表中文件名位置的索引匹配。当我在列表中选择一个特定的字符串文件名并将其传递给
`f = 打开(文件名,“r”)
数据 = json.loads(f.read())`
我明白了:
Traceback(最近一次调用最后一次): 文件“test.py”,第 170 行,在 数据 = json.loads(f.read()) AttributeError:“str”对象没有属性“loads”
完整代码:
jsons=glob.glob("*.json")
print(type(jsons))
print(type(jsons[0]))
n=0
if(jsons):
for json in jsons:
print(str(n) + ' - ' + json)
n=n+1
jsonselection=int(input('select your settings file: '))
filename=(" ".join(jsons[jsonselection].split()))
print()
print('your selection: ' + filename)
else:
sys.exit(colored('no json files available.','red'))
f = open (filename, "r")
data = json.loads(f.read())
实际上,如果我将我定义的随机变量(例如 name='file')传递给该方法,它就可以工作。我只是不明白为什么。提前感谢您的帮助
【问题讨论】:
-
您已经使用
for json in jsons中的变量隐藏了json模块名称
标签: python json string object attributes