Python 将类似JSON的对象转换为JSON
我有一个JSON文件被过滤掉了,失去了原来的结构。文件的每一行看起来如下所示:Python 将类似JSON的对象转换为JSON,python,json,Python,Json,我有一个JSON文件被过滤掉了,失去了原来的结构。文件的每一行看起来如下所示: {u'spec1': {u'property1': u'12345', u'property2': 1234}, u'spec2': {u'property3': u'98754', u'property4': u'val1'}} json.loads不起作用,ast.literal\u eval不起作用。我想我有两个问题:删除unicode并更改为。有人能提供一些关于从哪里开始的指针吗?假设您使用的是Python
{u'spec1': {u'property1': u'12345', u'property2': 1234}, u'spec2': {u'property3': u'98754', u'property4': u'val1'}}
json.loads
不起作用,ast.literal\u eval
不起作用。我想我有两个问题:删除unicode并更改为。有人能提供一些关于从哪里开始的指针吗?假设您使用的是Python 2.X
json.loads
将str
或unicode
作为其参数。您提供的字符串不是有效的json字符串。因此,我们应该做一些预处理工作
import re, json
json_str = """{u'spec1': {u'property1': u'12345', u'property2': 1234}, u'spec2': {u'property3': u'98754', u'property4': u'val1'}}"""
json_str = json_str.replace("\'", "\"")
json_str = re.sub(r"u\"", "\"", json_str)
json_dict = json.loads(json_str)
然后
json\u dict
将是一个从json字符串中膨胀出来的字典。假设您使用的是Python 2.X
json.loads
将str
或unicode
作为其参数。您提供的字符串不是有效的json字符串。因此,我们应该做一些预处理工作
import re, json
json_str = """{u'spec1': {u'property1': u'12345', u'property2': 1234}, u'spec2': {u'property3': u'98754', u'property4': u'val1'}}"""
json_str = json_str.replace("\'", "\"")
json_str = re.sub(r"u\"", "\"", json_str)
json_dict = json.loads(json_str)
然后
json\u dict
将是一个从json字符串中膨胀出来的字典。假设您使用的是Python 2.X
json.loads
将str
或unicode
作为其参数。您提供的字符串不是有效的json字符串。因此,我们应该做一些预处理工作
import re, json
json_str = """{u'spec1': {u'property1': u'12345', u'property2': 1234}, u'spec2': {u'property3': u'98754', u'property4': u'val1'}}"""
json_str = json_str.replace("\'", "\"")
json_str = re.sub(r"u\"", "\"", json_str)
json_dict = json.loads(json_str)
然后
json\u dict
将是一个从json字符串中膨胀出来的字典。假设您使用的是Python 2.X
json.loads
将str
或unicode
作为其参数。您提供的字符串不是有效的json字符串。因此,我们应该做一些预处理工作
import re, json
json_str = """{u'spec1': {u'property1': u'12345', u'property2': 1234}, u'spec2': {u'property3': u'98754', u'property4': u'val1'}}"""
json_str = json_str.replace("\'", "\"")
json_str = re.sub(r"u\"", "\"", json_str)
json_dict = json.loads(json_str)
然后,json\u dict
将是一个从json字符串中膨胀的字典。看起来像这样(在Python3中):
正如您所看到的,我将两种模式都替换为“char”,并(因此)将u替换为“patterns”
希望这有帮助
a、 看起来像是这样(在Python3中):
正如您所看到的,我将两种模式都替换为“char”,并(因此)将u替换为“patterns”
希望这有帮助
a、 看起来像是这样(在Python3中):
正如您所看到的,我将两种模式都替换为“char”,并(因此)将u替换为“patterns”
希望这有帮助
a、 看起来像是这样(在Python3中):
正如您所看到的,我将两种模式都替换为“char”,并(因此)将u替换为“patterns”
希望这有帮助
a、 以下是我的观点(Python 2.7)
不要看StringIO
,它是用来模拟文件读取的。我的建议是逐行读取文件并逐行执行literal\u eval
对我来说,这是使其工作无误的唯一方法。以下是我的观点(Python 2.7)
不要看StringIO
,它是用来模拟文件读取的。我的建议是逐行读取文件并逐行执行literal\u eval
对我来说,这是使其工作无误的唯一方法。以下是我的观点(Python 2.7)
不要看StringIO
,它是用来模拟文件读取的。我的建议是逐行读取文件并逐行执行literal\u eval
对我来说,这是使其工作无误的唯一方法。以下是我的观点(Python 2.7)
不要看StringIO
,它是用来模拟文件读取的。我的建议是逐行读取文件并逐行执行literal\u eval
对我来说,这是唯一能让它正常工作的方法。
ast.literal\u eval
works:你使用的是什么版本的python?我有Python3.2,但它失败了,但更新到Python3.4仍然有效。Python2.7也有效。ast.literal\u eval
works:你使用的是什么版本的python?我有Python3.2,但更新到Python3.4失败了Python3.4可以工作。Python2.7也可以工作。ast.literal\u eval
works:您使用的是什么版本的Python?我有Python3.2,但它失败了,但更新到Python3.4时仍然可以工作。Python2.7也可以工作。ast.literal\u eval
works:您使用的是什么版本的Python?我有Python3.2,但更新到Python3.4时失败了。Python2.7同样有效。{u'spec1':{u'property1':u'12345',u'property2':1234},u'spec2':{u'property3':u'98754',u'property4':u'val1}这是我作为一名医生得到的result@user20150316哪一步的结果?打印json_dict.json_str看起来还可以。但是json_dict有你所有的这些预编码看起来有点乏味。我们这里有一个完美工作的Python对象,所以为什么不尝试这样评估它们,而不使用所有的json魔法呢?我们可以使用ast.literal_eval
,这是一个它更稳定。别误会我,我认为每个解决方案都是正确的,只要它能起到作用并使OP满意。我只想指出,有一些更优雅的方法可以做到这一点(我不是特别指我的)。无论如何,这个讨论可能已经结束了。祝你有一个愉快的一天。{u'spec1':{u'property1':u'12345',u'property2':1234},u'spec2':{u'property3':u'98754',u'property4':u'val1'}这是我作为一名医生得到的result@user20150316哪一步的结果?打印json_dict.json_str看起来还可以。但是json_dict有你所有的这些预编码看起来有点乏味。我们这里有一个完美工作的Python对象,所以为什么不尝试这样评估它们,而不使用所有的json魔法呢?我们可以使用ast.literal_eval
,这是一个它更稳定。别误会我,我认为每个解决方案都是正确的,只要它能起到作用并使OP满意。我只想指出,有一些更优雅的方法可以做到这一点(我不是特别指我的)。无论如何,这个讨论可能已经结束了。祝你有一个愉快的一天。{u'spec1':{u'property1':u'12345',u'property2':1234},u'spec2':{u'property3':u'98754',u'property4':u'val1'}这是我作为一名医生得到的result@user20150316哪一步的结果?打印json_dict.json_str看起来还可以。但是json_dict有你所有的这些预编码看起来有点乏味。我们这里有一个完美工作的Python对象,所以为什么不尝试这样评估它们,而不使用所有的json魔法呢?我们可以使用ast.literal_eval
,这是一个小米