如何在不使用转储的情况下在python中写入json文件

时间:2018-10-10 17:00:42

标签: python json dataframe pyspark bson

我有来自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。

1 个答案:

答案 0 :(得分:0)

在json.dumps中使用sure_ascii = False:

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

这将避免unicode输出。编码功能可用于编码为所需的格式。在大多数情况下,使用“ utf8”都会很安全