解析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=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
【讨论】:
以上是关于解析csv文件中的json字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 json2csv nodejs 模块将 JSON 对象解析为 CSV 文件
使用Java开发 接收一个Json文件,然后解析Json 并按照特定的Csv格式转换,输出Csv格式的文件,求案例谢谢