从文本文件到字典

16 浏览
0 Comments

从文本文件到字典

我遇到了一些麻烦。我有一个包含如下内容的 .txt 文件:

    {'x': '1', 'y': 's'}

我想将其导入到字典中。我先前使用了这段代码,但它不起作用:

     import json
     database = {}
     f = open('ds.txt','r')
     def load():
             database=json.load(open("ds.txt"))
             print(database)  
     load()

错误如下:

    Traceback (most recent call last):
    File "C:\Users\tan\Downloads\Compressed\project2\ct.py", line 11, in 
load()
    File "C:\Users\tan\Downloads\Compressed\project2\ct.py", line 6, in load
database=json.load(open("ds.txt"))
    File "C:\Users\tan\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 268, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
    File "C:\Users\tan\AppData\Local\Programs\Python\Python35-32\lib\json\__init__.py", line 319, in loads
return _default_decoder.decode(s)
   File "C:\Users\tan\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
   File "C:\Users\tan\AppData\Local\Programs\Python\Python35-32\lib\json\decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
   json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 column 2 (char 1)

我也尝试了这个,但我不认为它真的起作用:

    database={}
    f=open("ds.txt","r")
    def load():
            o= f.read()
            database=o
            print(database)
    load()

这段代码属于一个大代码块,所以如果需要整体代码来回答我的问题,请告诉我。

谢谢。

admin 更改状态以发布 2023年5月24日
0
0 Comments

您的JSON字符串无效。请使用双引号(")替换单引号(')。

{"x": "1", "y": "s"}

0
0 Comments

尝试这个:

import ast
database = {}
f=open("ds.txt", "r")
def load():
    return ast.literal_eval(str(f.read()))
database = load()
print(database['y'])

如何将字符串字典转换为Python字典?

0