X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=python%2Fovs%2Fjson.py;h=96f3cffc856b5fb8643a4ee0638a33e19becb370;hb=03a8a29eb87ef21d0e56c200ebe43878ef773d63;hp=67470fcbcae921f9876fb591cb420967a846e51c;hpb=070de9bd4137b78b1a74e287fea475ac7aa39bf6;p=openvswitch diff --git a/python/ovs/json.py b/python/ovs/json.py index 67470fcb..96f3cffc 100644 --- a/python/ovs/json.py +++ b/python/ovs/json.py @@ -28,15 +28,7 @@ for i in range(32): escapes[i] = u"\\u%04x" % i def __dump_string(stream, s): - stream.write(u"\"") - for c in s: - x = ord(c) - escape = escapes.get(x) - if escape: - stream.write(escape) - else: - stream.write(c) - stream.write(u"\"") + stream.write(u'"%s"' % ''.join(escapes.get(ord(c), c) for c in s)) def to_stream(obj, stream, pretty=False, sort_keys=True): if obj is None: @@ -59,26 +51,22 @@ def to_stream(obj, stream, pretty=False, sort_keys=True): items = sorted(obj.items()) else: items = obj.iteritems() - i = 0 - for key, value in items: + for i, (key, value) in enumerate(items): if i > 0: stream.write(u",") - i += 1 __dump_string(stream, unicode(key)) stream.write(u":") to_stream(value, stream, pretty, sort_keys) stream.write(u"}") elif type(obj) in (list, tuple): stream.write(u"[") - i = 0 - for value in obj: + for i, value in enumerate(obj): if i > 0: stream.write(u",") - i += 1 to_stream(value, stream, pretty, sort_keys) stream.write(u"]") else: - raise Error("can't serialize %s as JSON" % obj) + raise Exception("can't serialize %s as JSON" % obj) def to_file(obj, name, pretty=False, sort_keys=True): stream = open(name, "w")