将csv文件中的JSON列解压缩到MySQL中[已关闭]

r6hnlfcb  于 12个月前  发布在  Mysql
关注(0)|答案(1)|浏览(123)

已关闭,此问题需要details or clarity。它目前不接受回答。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。

关闭7天前。
Improve this question
我试图读取一个CSV文件,其中第一列是Client_id,第二列是一个类似JSON的字段,其中包含有关此客户端拥有的车辆的信息。所以我的目标是以这样一种方式阅读CSV文件,如果客户有4辆车,我会在第一列中有4次,第二列中有1辆车。
我希望我描述得足够清楚。谢谢你,谢谢

8ljdwjyq

8ljdwjyq1#

正如@Jan_B提到的,这个问题需要数据的例子和你已经尝试过的,但是没有这些信息,有一个粗略的想法可以工作;如果您的JSON数据存在于CSV的第二列中,那么首先尝试单独提取它可能是最简单的(老实说,我非常好奇CSV中的JSON是什么样子的?)并以这种方式编译您的框架。
但是,如果第一列有一个client_ID字段,而它旁边的字段是您的JSON-like-info,那么您的另一个选择是加载它并填充字典。理想情况下,类似于records = {"Client ID 1":"JSON-string 1" ... "Client ID X":"JSON-string X"}。然后,现在你已经将你的key(客户端)和value(json-as-a-string)配对在一起,你可以使用内置的json包将字符串转换成它自己的字典对象来表示客户端的信息。如果我没记错的话,正确的命令应该是json.loads(<json-string-goes-here>),你可以用它来替换record中的字符串项,用你的json的字典表示,得到一个结构整洁的嵌套字典,你可以更容易地操作它。
同样,示例数据和代码将是有帮助的(AFAIK堆栈溢出需要它?但无论哪种方式),但我在此期间的粗略伪代码可能看起来像这样:

import json, pandas as pd
path_to_csv = r" ... "
csv_dataframe = pd.read_csv(path_to_csv,dtype="object")
names = csv_dataframe["Client_id"]; json_data = csv_dataframe["JSON"]
record = {}
for row_number in range(len(names)):
    name = names[row_number]; thisjson = json_data[row_number]
    thisjson = json.loads(thisjson)
    record[name] = thisjson

现在,就最终生成你想要的框架而言--如果没有样本数据,我不太确定;然而,以这种方式拥有一个嵌套的dicionary将比试图挖掘CSV嵌套的JSON数据更容易管理。有了这个,你可以为每个人填充单独的嵌套,并在最后用pd.concat([list of your individual df's])压缩它,但这更多的是个人偏好。

相关问题