Python 来自具有特定结构的字符串的字典
我正在使用Python3读取此文件并将其转换为字典 我有一个文件中的字符串,我想知道如何从中创建字典Python 来自具有特定结构的字符串的字典,python,string,dictionary,Python,String,Dictionary,我正在使用Python3读取此文件并将其转换为字典 我有一个文件中的字符串,我想知道如何从中创建字典 [User] Date=10/26/2003 Time=09:01:01 AM User=teodor UserText=Max Cor UserTextUnicode=392039n9dj90j32 [System] Type=Absolute Dnumber=QS236 Software=1.1.1.2 BuildNr=0923875 Source=LAM Column=OWKD [Bu
[User]
Date=10/26/2003
Time=09:01:01 AM
User=teodor
UserText=Max Cor
UserTextUnicode=392039n9dj90j32
[System]
Type=Absolute
Dnumber=QS236
Software=1.1.1.2
BuildNr=0923875
Source=LAM
Column=OWKD
[Build]
StageX=12345
Spotter=2
ApertureX=0.0098743
ApertureY=0.2431899
ShiftXYZ=-4.234809e-002
[Text]
Text=Here is the Text files
DataBaseNumber=The database number is 918723
。。。。。(每个文件超过1000行)….
在文本中,我有“Name=Something”
,然后我想将其转换如下:
{'Date':'10/26/2003',
'Time':'09:01:01 AM'
'User':'teodor'
'UserText':'Max Cor'
'UserTextUnicode':'392039n9dj90j32'.......}
可以删除[]
之间的单词,如[用户]、[系统]、[构建]、[文本]等。
在某些字段中,只有字符串的第一部分:
[Colors]
Red=
Blue=
Yellow=
DarkBlue=
你所拥有的只是一个普通人。您可以使用此示例将值读入地图:
try(InputStream输入=新文件InputStream(“您的文件路径”)){
Properties prop=新属性();
道具载荷(输入);
//prop.getProperty(“用户”)=“teodor”
}捕获(IOEX异常){
例如printStackTrace();
}
编辑:有关Python解决方案,请参阅。
您可以使用来读取
.ini
或.properties
文件(您拥有的格式)
导入配置解析器
config=configparser.configparser()
config.read('您的\u文件\u路径')
#config['User']=={'Date':'10/26/2003','Time':'09:01:01 AM'…}
#配置['User']['User']=='teodor'
#配置['System']=={'Type':'Abosulte',…}
您拥有的是一台普通的电脑。您可以使用此示例将值读入地图:
try(InputStream输入=新文件InputStream(“您的文件路径”)){
Properties prop=新属性();
道具载荷(输入);
//prop.getProperty(“用户”)=“teodor”
}捕获(IOEX异常){
例如printStackTrace();
}
编辑:有关Python解决方案,请参阅。
您可以使用来读取
.ini
或.properties
文件(您拥有的格式)
导入配置解析器
config=configparser.configparser()
config.read('您的\u文件\u路径')
#config['User']=={'Date':'10/26/2003','Time':'09:01:01 AM'…}
#配置['User']['User']=='teodor'
#配置['System']=={'Type':'Abosulte',…}
我建议做一些清洁,以去除[]行
之后,您可以使用“=”分隔符拆分这些行,然后将其转换为字典。我建议进行一些清理,以清除[]行
之后,您可以使用“=”分隔符拆分这些行,然后将其转换为字典。可以在python中轻松完成。假设您的文件名为
test.txt
。
这也适用于=
之后没有任何内容的行以及具有多个=
的行
d={}
以open('test.txt','r')作为f:
对于f中的行:
line=line.strip()#删除任何空格或换行符
零件=线。拆分('=')#围绕线拆分`=`
如果长度(零件)>1:
d[parts[0]]=''。加入(parts[1:])
印刷品(d)
输出:
{
"Date": "10/26/2003",
"Time": "09:01:01 AM",
"User": "teodor",
"UserText": "Max Cor",
"UserTextUnicode": "392039n9dj90j32",
"Type": "Absolute",
"Dnumber": "QS236",
"Software": "1.1.1.2",
"BuildNr": "0923875",
"Source": "LAM",
"Column": "OWKD",
"StageX": "12345",
"Spotter": "2",
"ApertureX": "0.0098743",
"ApertureY": "0.2431899",
"ShiftXYZ": "-4.234809e-002",
"Text": "Here is the Text files",
"DataBaseNumber": "The database number is 918723"
}
可以很容易地用python完成。假设您的文件名为
test.txt
。
这也适用于=
之后没有任何内容的行以及具有多个=
的行
d={}
以open('test.txt','r')作为f:
对于f中的行:
line=line.strip()#删除任何空格或换行符
零件=线。拆分('=')#围绕线拆分`=`
如果长度(零件)>1:
d[parts[0]]=''。加入(parts[1:])
印刷品(d)
输出:
{
"Date": "10/26/2003",
"Time": "09:01:01 AM",
"User": "teodor",
"UserText": "Max Cor",
"UserTextUnicode": "392039n9dj90j32",
"Type": "Absolute",
"Dnumber": "QS236",
"Software": "1.1.1.2",
"BuildNr": "0923875",
"Source": "LAM",
"Column": "OWKD",
"StageX": "12345",
"Spotter": "2",
"ApertureX": "0.0098743",
"ApertureY": "0.2431899",
"ShiftXYZ": "-4.234809e-002",
"Text": "Here is the Text files",
"DataBaseNumber": "The database number is 918723"
}
很抱歉,我忘了说我正在使用python:(-我将阅读您发送的链接me@Alambek没问题。:)解决方案大致相同()对不起,我忘了说我正在使用python:(-我会阅读您发送的链接me@Alambek没问题。:)解决方案大致相同()如果它解决了问题,请不要忘记标记它是一个答案:)。虽然配置解析器工作得更好。如果它解决了问题,请不要忘记标记它是一个答案:)。尽管配置解析器工作得更好。