解析csv文件中的json字符串[重复]

Posted

技术标签:

【中文标题】解析csv文件中的json字符串[重复]【英文标题】:Parse json string in csv file [duplicate] 【发布时间】:2017-08-01 21:15:03 【问题描述】:

我有一个包含一些 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... 有什么建议? 非常感谢!

【问题讨论】:

你的问题的格式不是很清楚,但你已经做到了多少?解析csv很容易 如果我使用pd.read_csv(file),第三个逗号会将“B1”的字典分成三部分。最后一部分就像 "b3":"000" ,不是 json 形式。 你的 json 被引用了。你需要设置引号字符,否则所有逗号都被拆分,是的。 我试过 pd.read_csv(file,quotechar='"',header=None) 它仍然以错误的方式分隔我的 json... 我在这个文件中没有列,所以我不知道如何在 pd.read_csv() 中使用转换器 ... 【参考方案1】:

您拥有的数据使用\" 在每个单元格中转义双引号。可以通过将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

【讨论】:

以上是关于解析csv文件中的json字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将JSON中的大数字解析为字符串[重复]

如何使用 json2csv nodejs 模块将 JSON 对象解析为 CSV 文件

下载 JSON 文件,但解析显示不可读的字符 [重复]

使用Java开发 接收一个Json文件,然后解析Json 并按照特定的Csv格式转换,输出Csv格式的文件,求案例谢谢

如何通过D3.js中的JSON文件解析按键对对象进行排序[重复]

避免在 Spark 中解析 json 子字段