Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将字符串转换为dict并按升序排序_Python_String_Python 3.x_Dictionary - Fatal编程技术网

Python 将字符串转换为dict并按升序排序

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

我有一个上面格式的字符串文件,我想将字符串转换成字典,并使用python3中的seq number对记录进行排序。 我一直在尝试下面的方法,但没有成功。非常感谢您的帮助!提前谢谢

{“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)。。。然后进行数据转换您尝试的ID
json.loads(string1)
?可能是卷曲的引号,这总是很烦人。一次读取一行文件,如果行不为空,则调用json.loads(line)。。。然后进行数据转换