解析csv文件中的json字符串
解析csv文件中的json字符串
我有一个包含一些JSON字符串的CSV文件,我想将其解析并存储到数据帧中。文件的内容如下:
file1,"{\"A1\": {\"a\": \"123\"}, \"B1\": {\"b1\": \"456\", \"b2\": \"789\", \"b3\": \"000\"}}", file2,"{\"A2\": {\"a\": \"321\"}, \"B2\": {\"b1\": \"654\", \"b2\": \"987\"}}"
获取字典中的键后,我想要的数据帧如下:
1 2 3 file1 {"A1":{"a":"123"}} {"B1":{"b1":"456","b2":"789","b3":"000"}} file2 {"A2":{"a2":"321"}} {"B2":{"b1":"654","b2":"987"}}
列2和列3中的值将是字典。
我尝试了以下方法:
pd.read_csv(file, quotechar='"', header=None)
但它仍然以错误的方式分隔我的JSON...
有什么建议吗?
非常感谢!
在这段内容中,我们可以看到一个关于解析json字符串的问题。问题是在每个单元格中使用\"
来转义双引号。为了解决这个问题,我们可以设置doublequote=True
和escapechar='\\'
这两个参数。
具体的解决方法如下:
df = pd.read_csv('input.json', doublequote=True, escapechar='\\') print df
这样,我们就可以得到类似于以下的输出结果:
0 1 2 0 file1 {"A1": {"a": "123"}, "B1": {"b1": "456", "b2":... 1 file2 {"A2": {"a": "321"}, "B2": {"b1": "654", "b2":... None file1 {"A1": {"a": "123"}, "B1": {"b1": "456", "b2": "789", "b3": "000"}} \ 0 file2 {"A2": {"a": "321"}, "B2": {"b1": "654", "b2":... Unnamed: 2 0 NaN
通过设置以上的参数,我们可以正确解析带有转义双引号的json字符串。这对于处理包含特殊字符的数据非常有用。