我有以下JSON数据(它不是完全有效的数据。但是它几乎是有效的)
{
u'Category': u'Exp',
u'Severity': u'warn',
u'EventName': u'TimeExceeded',
u'EventTimestamp': u'1432510367083',
u'Message': u'details: {
"Message": "long (2567 ms : ATime: 5 ms, BTime: 1237 ms, CTime: 1325 ms)",
"Title": "Core Herald influence",
"Referrer": "undefined",
"Time": "Mon May 25 2015 11:32:47 GMT+1200 (NZST)",
"Session": "None",
"ResponseTime": 0,
"StatusCode": 0,
"Links": 325,
"Images": 57,
"Forms": 2,
"Errors": 0,
"Platform": "Linux x86_64",
"BrowserAppname": "Netscape",
"AppCodename": "Mozilla",
"Product": "Gecko",
"CPUs": 8,
"Language": "en-GB",
}',
u'Subject': u'TimeExceeded'
}
我的问题如下。
我在数据中的一些地方看到u
u'Category'
和u'Exp'
以上。那到底是什么意思?你知道吗
如何将上述数据转换为有效的JSON?你知道吗
虽然它们看起来很相似,但实际上这不是JSON,而是Python对dict的表示(如果您打印它的话)。你知道吗
这是无效的原因有两个:
u
的unicode
假设在Python中有
dict
对象的表示形式,则应该通过JSON模块将其序列化为JSON:关于
u
的一些背景:在Python2.x中,字符串是8位字符串类型或Unicode。为了区分两者,在Unicode字符串前面放一个
u
。在JSON中,字符串仅定义为“零个或多个Unicode字符的序列”。不需要区分不同的字符串类型。你知道吗如果您在Python中有这个} 模块来实现这一点。详见Martin Konecny's answer。你知道吗
dict
,并且您只想知道如何从中生成有效的JSON,那么您可以使用^{另一方面,如果您在某个文件的某个地方有这个文本,并且已经来不及正确地存储它了,那么您只需要将它返回到} 的效果。这只适用于那些只由一些非常基本的类型组成的东西……但这里似乎就是这样。你知道吗
dict
中,唯一合理的方法是调用repr
或str
(或print
)来逆转对Python对象调用^{同样,如果您没有更好的格式的数据,并且无法重新创建它,那么您应该只这样做。但如果真是这样,就没有更好的选择了。你知道吗
例如,下面的程序将打印出
TimeExceeded
:相关问题 更多 >
编程相关推荐