解析csv文件中的json字符串

11 浏览
0 Comments

解析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...

有什么建议吗?

非常感谢!

0
0 Comments

在这段内容中,我们可以看到一个关于解析json字符串的问题。问题是在每个单元格中使用\"来转义双引号。为了解决这个问题,我们可以设置doublequote=Trueescapechar='\\'这两个参数。

具体的解决方法如下:

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字符串。这对于处理包含特殊字符的数据非常有用。

0