def test_asdict_not_callable_dump(self): for f in CONSTRUCTORS: self.assertRaises(TypeError, json.dump, f(DeadDuck()), StringIO(), namedtuple_as_object=True) sio = StringIO() json.dump(f(DeadDict()), sio, namedtuple_as_object=True) self.assertEqual( json.dumps(f({})), sio.getvalue())
def test_namedtuple_dump_false(self): for v in [Value(1), Point(1, 2)]: l = list(v) sio = StringIO() json.dump(v, sio, namedtuple_as_object=False) self.assertEqual( l, json.loads(sio.getvalue())) self.assertRaises(TypeError, json.dump, v, StringIO(), tuple_as_array=False, namedtuple_as_object=False)
def test_decimal_defaults(self): d = Decimal('1.1') # use_decimal=True is the default self.assertRaises(TypeError, json.dumps, d, use_decimal=False) self.assertEqual('1.1', json.dumps(d)) self.assertEqual('1.1', json.dumps(d, use_decimal=True)) self.assertRaises(TypeError, json.dump, d, StringIO(), use_decimal=False) sio = StringIO() json.dump(d, sio) self.assertEqual('1.1', sio.getvalue()) sio = StringIO() json.dump(d, sio, use_decimal=True) self.assertEqual('1.1', sio.getvalue())
def test_namedtuple_dump(self): for v in [Value(1), Point(1, 2), DuckValue(1), DuckPoint(1, 2)]: d = v._asdict() sio = StringIO() json.dump(v, sio) self.assertEqual(d, json.loads(sio.getvalue())) sio = StringIO() json.dump(v, sio, namedtuple_as_object=True) self.assertEqual(d, json.loads(sio.getvalue())) sio = StringIO() json.dump(v, sio, tuple_as_array=False) self.assertEqual(d, json.loads(sio.getvalue())) sio = StringIO() json.dump(v, sio, namedtuple_as_object=True, tuple_as_array=False) self.assertEqual(d, json.loads(sio.getvalue()))
def check(indent, expected): d1 = json.dumps(h, indent=indent) self.assertEqual(d1, expected) sio = StringIO() json.dump(h, sio, indent=indent) self.assertEqual(sio.getvalue(), expected)
def write_popular_to_database(table, list_popular_music_ids): print "writing popular to database" video_results_json = [] for video_id, title in list_popular_music_ids: video_json = {} video_json["id"] = video_id video_json["title"] = title if video_id in language_table: video_json["language"] = language_table[video_id] if video_id in geo_table: video_json["geo"] = geo_table[video_id] if video_id in retweet_table: video_json["retweet_network"] = retweet_table[video_id] if video_id in max_retweet_table: video_json["num_retweet_was_retweeted"] = max_retweet_table[video_id][0] video_json["max_retweet_count"] = max_retweet_table[video_id][1]['text'] if video_id in time_of_day_table: video_json["popular_time"] = time_of_day_table[video_id] video_results_json.append(video_json) io = StringIO() json.dump(video_results_json, io) cursor.execute("INSERT into videos VALUES ('%s', 'popular', '%s')" % (table[1:], re.escape(io.getvalue()))) conn.commit()
def process_communes(): file_src = "/nas/dmap/dev/data/latlon/cdp_2009/commune-a.shp" file_dst = "./communes.json" begin_progress("process communes\t") csv = load_csv("/nas/dmap/dev/install/cdp_2009/src/communes.csv") data_src, layer_src = open_datasource(file_src) spatialReference = layer_src.GetSpatialRef() proj_src = spatialReference.ExportToProj4( ) if spatialReference else '' or proj_src index_insee = get_field_indexs(layer_src, "INSEE") file = open(file_dst, 'w') file.write('{"type":"FeatureCollection","features":[\n') fcpt = 0 fcount = layer_src.GetFeatureCount() for index in xrange(fcount): feature = layer_src.GetFeature(index) geometry = feature.GetGeometryRef() fid = feature.GetFID() insee = feature.GetFieldAsString(index_insee) if insee not in csv: raise ShapeDataError(insee + " must be in csv file") nom = csv[insee]['NOM'].decode("utf-8") cp = csv[insee]['CP'] g = geojson.loads(geometry.ExportToJson()) f = geojson.Feature(geometry=g, properties={ 'INSEE': insee, 'NAME': nom, 'CP': cp }) data = geojson.dumps(f) data = json.load(StringIO(data)) encoded = encoder.iterencode(data) for token in encoded: if charfloat_pat.match(token): file.write(token[0] + format % float(token[1:])) elif float_pat.match(token): file.write(format % float(token)) else: file.write(token) if index < fcount - 1: file.write(',') feature.Destroy() fcpt += 1 pc = float(fcpt) / float(fcount) * 100.0 set_progress(pc) file.write(']}') file.close() end_progress()
def test_decimal_defaults(self): d = Decimal(1) sio = StringIO() # use_decimal=False is the default self.assertRaises(TypeError, json.dumps, d, use_decimal=False) self.assertRaises(TypeError, json.dumps, d) self.assertRaises(TypeError, json.dump, d, sio, use_decimal=False) self.assertRaises(TypeError, json.dump, d, sio)
def test_sort_keys(self): # https://github.com/simplejson/simplejson/issues/106 for num_keys in range(2, 32): p = dict((str(x), x) for x in range(num_keys)) sio = StringIO() json.dump(p, sio, sort_keys=True) self.assertEqual(sio.getvalue(), json.dumps(p, sort_keys=True)) self.assertEqual(json.loads(sio.getvalue()), p)
def parse_str_to_list(input): io = StringIO(input) r = [] for element in json.load(io): if type(element) == str: element = element.strip() r.append(float(element)) return r
def test_tuple_array_dump(self): t = (1, 2, 3) expect = json.dumps(list(t)) # Default is True sio = StringIO() json.dump(t, sio) self.assertEqual(expect, sio.getvalue()) sio = StringIO() json.dump(t, sio, tuple_as_array=True) self.assertEqual(expect, sio.getvalue()) self.assertRaises(TypeError, json.dump, t, StringIO(), tuple_as_array=False) # Ensure that the "default" does not get called sio = StringIO() json.dump(t, sio, default=repr) self.assertEqual(expect, sio.getvalue()) sio = StringIO() json.dump(t, sio, tuple_as_array=True, default=repr) self.assertEqual(expect, sio.getvalue()) # Ensure that the "default" gets called sio = StringIO() json.dump(t, sio, tuple_as_array=False, default=repr) self.assertEqual( json.dumps(repr(t)), sio.getvalue())
def test_object_pairs_hook(self): s = '{"xkd":1, "kcw":2, "art":3, "hxm":4, "qrt":5, "pad":6, "hoy":7}' p = [("xkd", 1), ("kcw", 2), ("art", 3), ("hxm", 4), ("qrt", 5), ("pad", 6), ("hoy", 7)] self.assertEqual(json.loads(s), eval(s)) self.assertEqual(json.loads(s, object_pairs_hook=lambda x: x), p) self.assertEqual(json.load(StringIO(s), object_pairs_hook=lambda x: x), p) od = json.loads(s, object_pairs_hook=OrderedDict) self.assertEqual(od, OrderedDict(p)) self.assertEqual(type(od), OrderedDict) # the object_pairs_hook takes priority over the object_hook self.assertEqual( json.loads(s, object_pairs_hook=OrderedDict, object_hook=lambda x: None), OrderedDict(p))
def loads(self, s, **kw): sio = StringIO(s) res = json.loads(s, **kw) self.assertEqual(res, json.load(sio, **kw)) return res
def dumps(self, obj, **kw): sio = StringIO() json.dump(obj, sio, **kw) res = json.dumps(obj, **kw) self.assertEqual(res, sio.getvalue()) return res
def test_dump(self): sio = StringIO() json.dump({}, sio) self.assertEqual(sio.getvalue(), '{}')
# # Copyright © 2018 <@DESKTOP-TA60DPH> # # Distributed under terms of the MIT license. # Auther : RB import requests import simplejson as json from simplejson.compat import StringIO """ get the ranking between NTU on kaggle competition """ rank = requests.get("https://www.kaggle.com/c/9489/leaderboard.json?includeBeforeUser=false&includeAfterUser=true") io = StringIO(rank.text) data = json.load(io) before = data["beforeUser"] near = data["nearUser"] after = data["afterUser"] counter = 1 print(" ",format("rank","^6"),format('score',"^15"),format('teamName',"<30")) position = 0 for i in before: our = ' ' if i['teamName'][:4] == "NTU_": if i['teamName'] == "NTU_r06942018___": our = '*' position = counter
def sio_dump(obj, **kw): sio = StringIO() json.dumps(obj, **kw) return sio.getvalue()