我需要使用python从文本文件中获取字典元素,并构建此python代码:
# -*- coding: utf-8 -*-
user_input = raw_input('Write group name: ')
data_file = open('data.txt', 'r')
d = data_file.read()
print d[user_input]
data.txt文件:
group1 = {
'jhon',
'sam',
'mees'
}
group2 = {
'212332'
}
group3 = {
'USA',
'UK'
}
但是我收到了这个错误:
Traceback (most recent call last):
File "test.py3", line 7, in <module>
print d[user_input]
TypeError: string indices must be integers, not str
如何从data.text
文件中获取字典元素?
答案 0 :(得分:1)
d = data_file.read()
以字符串形式返回文件中的所有数据。
您可以使用imp
模块分配变量的一种方法。这将.txt
文件作为python模块处理:
import imp
with open('data.txt', 'r') as f:
file = imp.load_source('file', '', f)
然后您可以使用.
运算符检索变量:
>>> file.group1
{'sam', 'jhon', 'mees'}
>>> file.group2
{'212332'}
>>> file.group3
{'USA', 'UK'}
如果您可以重命名文件,可以将扩展名更改为.py,只需将文件作为模块导入:
import dataFile
输出:
>>> dataFile.group1
{'jhon', 'sam', 'mees'}
>>> dataFile.group2
{'212332'}
>>> dataFile.group3
{'USA', 'UK'}
请注意,这意味着您必须从文件中注释掉任何非python语法。
答案 1 :(得分:-1)
data.txt中
{
"group1": [
" jhon",
"sam",
"mees"
],
"group2": [
"212332"
],
"group3": [
"USA",
"UK"
]
}
代码:
import json
data_file = open('data.txt', 'r')
d = json.loads(data_file.read().strip())
print d["group1"]