Python 将字符串转换为dict并按升序排序
我有一个上面格式的字符串文件,我想将字符串转换成字典,并使用python3中的seq number对记录进行排序。 我一直在尝试下面的方法,但没有成功。非常感谢您的帮助!提前谢谢Python 将字符串转换为dict并按升序排序,python,string,python-3.x,dictionary,Python,String,Python 3.x,Dictionary,我有一个上面格式的字符串文件,我想将字符串转换成字典,并使用python3中的seq number对记录进行排序。 我一直在尝试下面的方法,但没有成功。非常感谢您的帮助!提前谢谢 {“timid”:”34567”, “version”:”1”,”binary_data”:”fsfdsfsdfasdfasdfsfasfdsa”,”seqNumber”:”101”} {“timid”:”32567”, “version”:”1”,”binary_data”:”fsfsdfdsfdsfdsfsfsd
{“timid”:”34567”, “version”:”1”,”binary_data”:”fsfdsfsdfasdfasdfsfasfdsa”,”seqNumber”:”101”}
{“timid”:”32567”, “version”:”1”,”binary_data”:”fsfsdfdsfdsfdsfsfsdfpipi”,”seqNumber”:”109”}
{“timid”:”36567”, “version”:”1”,”binary_data”:”fsfdsfsdfafsdfdsfsfasdfsfasfdsa”,”seqNumber”:”100”}
我认为这应该奏效:
import json
import ast
filename = 'u-data'
with open(filename) as f:
string1 = f.read()
# ast.literal_eval(string1)
data = dict(string1.split(':') for x in string1.split(','))
f.close()
# string1 = string1[1:-2]
print(data)
使用ast.literal_eval()时发生了什么
编辑
首先要做到:
data = ast.literal_eval(string1)
你有些双引号把事情搞砸了。然后运行:
string1 = string1.replace('“',"'").replace('”',"'")
我认为这应该奏效:
import json
import ast
filename = 'u-data'
with open(filename) as f:
string1 = f.read()
# ast.literal_eval(string1)
data = dict(string1.split(':') for x in string1.split(','))
f.close()
# string1 = string1[1:-2]
print(data)
使用ast.literal_eval()时发生了什么
编辑
首先要做到:
data = ast.literal_eval(string1)
你有些双引号把事情搞砸了。然后运行:
string1 = string1.replace('“',"'").replace('”',"'")
这里有一个解决方案。为了方便起见,我使用了
pandas
,但这很容易适用于非pandas变体
data = ast.literal_eval(string1)
这里有一个解决方案。为了方便起见,我使用了
pandas
,但这很容易适用于非pandas变体
data = ast.literal_eval(string1)
您是否尝试过
json.loads(string1)
?可能是卷曲的引号,这总是很烦人。请一次读取一行文件,如果行不为空,请调用json.loads(line)。。。然后进行数据转换您尝试的IDjson.loads(string1)
?可能是卷曲的引号,这总是很烦人。一次读取一行文件,如果行不为空,则调用json.loads(line)。。。然后进行数据转换