Python 无法在数据流笔记本上的Jupyter笔记本中导入JsonPickle

Python 无法在数据流笔记本上的Jupyter笔记本中导入JsonPickle,python,jupyter-notebook,google-cloud-dataflow,apache-beam,apache-beam-io,Python,Jupyter Notebook,Google Cloud Dataflow,Apache Beam,Apache Beam Io,我正在python中的ApacheBeam上构建一个管道,并使用Dataflow上的笔记本进行原型制作。在尝试加载JSON时,我意识到我与beam.io.ReadFromText(file_pattern,coder=JsonCoder())一起使用的JSON编码器(基本上是JSON.loads())没有规范化JSON。这意味着集合中的一些列只是作为字符串嵌套的JSON 因此,为了规范化JSON,我决定使用JsonPickle。但是,即使在安装并重新启动内核之后,模块导入也不起作用。你能帮忙吗?

我正在python中的
ApacheBeam
上构建一个管道,并使用
Dataflow
上的笔记本进行原型制作。在尝试加载JSON时,我意识到我与
beam.io.ReadFromText(file_pattern,coder=JsonCoder())
一起使用的JSON编码器(基本上是
JSON.loads()
)没有规范化JSON。这意味着集合中的一些列只是作为字符串嵌套的JSON

因此,为了规范化JSON,我决定使用
JsonPickle
。但是,即使在安装并重新启动内核之后,模块导入也不起作用。你能帮忙吗?当然,还有一种更好的方法可以规范化apachebeam世界上的JSON,请分享


您是否可以使用默认的编码器并使用后续的
ParDo
来规范化/格式化转换生成的元素,而不是更改编码器以转换
ReadFromText
Coder
应被视为Beam runner序列化/反序列化转换生成的元素的一种方式。使用
编码器
格式化转换生成的元素是一种反模式。

根据,您需要按如下方式运行命令:

%pip install jsonpickle

尝试在笔记本中运行:%pip安装jsonpickle@rmesteves工作得很卖力!我会把它贴出来作为回答是的,我遵循了你的方法。我使用
ParDo
来解组每一行,然后在pandas中使用JSON normalize来规范嵌套部分,转换数据帧并将其转换回JSON或dict,然后将其传输到管道。我仍然觉得这很奇怪。你对我的另一个困境也有答案吗?我认为在Apache Beam中规范JSON的最好方法是使用ParDo转换。有一个解析JSON的PTransform,但我不知道它是否适用于您的案例,实际上这是针对Java的。对于Python来说,它显然是不可用的