我有来自MongoDB的以下bson数据。我必须将代码转换为有效的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,但格式为“ \”。
如何在Unicode中提取值?因此,我可以创建一个PySpark DataFrame。
答案 0 :(得分:0)
在json.dumps中使用sure_ascii = False:
bson = f.read()
json.dumps(bson, ensure_ascii=False).encode('utf8')
这将避免unicode输出。编码功能可用于编码为所需的格式。在大多数情况下,使用“ utf8”都会很安全