Как написать файл JSON в Python без использования дампов - PullRequest
0 голосов
/ 10 октября 2018

У меня есть следующие данные bson от MongoDB.Мне нужно преобразовать код в действительный json для создания PySpark DataFrame.

"\"{u'_raja': ObjectId('XXXXXX'),\\n u'ram': datetime.datetime(XXx,xx14, xx, xx, xxx),\\n u'createUserId': u'praja-policy',\\n u'raja': u'I5',\\n u'udatedTime': datetime.datetime(XXx, xx, xx, xx, xx, xx, xxxx),\\n u'lastupdatedid': u'raja_id',\\n u'plt': u'123r32'}\""

Я написал следующий код.

from bson import json_util
with open("/XXXXX6/bi/XXXXX/XXXXX3/v0/test/bson.json", "rb") as f:
bson = f.read()
data= bson.replace('u\'','') – removal of Unicode 
data1 = data.replace('\n','') – removal of \n
json.dump(json_util.dumps(data), open("bson1.json", "w"))

, используя json.dump дает мне действительный json, но в формате "\".

Как извлечь значения внутри Юникода?Итак, я могу создать фрейм данных PySpark.

1 Ответ

0 голосов
/ 10 октября 2018

Используйте sure_ascii = False в json.dumps:

bson = f.read()
json.dumps(bson, ensure_ascii=False).encode('utf8')

Это позволит избежать вывода Unicode.Функцию кодирования можно использовать для кодирования в нужный формат.В большинстве случаев вы будете в безопасности с utf8

...