首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将JSON字符串存储在csv文件中,用于neo4j导入

将JSON字符串存储在csv文件中,用于neo4j导入
EN

Stack Overflow用户
提问于 2019-02-15 03:03:15
回答 1查看 73关注 0票数 0

我需要在csv文件的一个字段中存储一个JSON字符串,该文件将用于通过neo4j-admin import创建一个neo4j数据库。在我生成所有必要的csv文件并尝试创建数据库之后,它告诉我没有有效的--nodes文件。我怀疑这是一个在存储了JSON字符串的csv中引用的问题。下面是我用来生成csv文件的代码:

代码语言:javascript
复制
with open(cl_file,'w') as csvfile:
        writer = csv.writer(csvfile, delimiter=',', quoting=csv.QUOTE_ALL)
        writer.writerow(title_list)
        for row in unique_cl_data:
            writer.writerow([row[0], row[1], row[2], row[3], 'Cluster', dataset_name])

JSON字符串存储在row[3]值中,如下所示:

代码语言:javascript
复制
'{"mature_neuron":0.493694929,"intermediate_progenitor_cell":0.0982259823,"immature_neuron":0.1773570713,"glutamatergic_neuron":0.6074802751,"gabaergic_neuron":0.2685863644,"dopaminergic_neuron":0.0234599396,"serotonergic_neruon":0.001022236,"cholinergic_neuron":0.0273108961,"neuroepithelial_cell":0.2173953827,"radial_glia":0.2758471756,"microglia":0.0282818013,"macrophage":0.0,"astrocyte":0.3250249223,"oligodendrocyte_precursor_cell":0.4788073089,"mature_oligodendrocyte":0.3684283806,"schwann_cell_precursor":0.2158159088,"myelinating_schwann_cell":0.3282158992,"nonmyelinating_schwann_cell":0.4526564331,"endothelial_cell":0.7830818309,"mural_cell":0.0756233339}'

生成的csv如下所示:

代码语言:javascript
复制
"clusterId:ID","chartType","clusterName","assign",":LABEL","DATASET"
"scid_engram_fear_traned_tsne_1","tsne","1","{""mature_neuron"":0.793159869,""intermediate_progenitor_cell"":0.000454013,""immature_neuron"":0.0548508584,""glutamatergic_neuron"":1.0792403847,""gabaergic_neuron"":0.3181778459,""dopaminergic_neuron"":0.150589103,""serotonergic_neruon"":0.0096765336,""cholinergic_neuron"":0.0251700647,""neuroepithelial_cell"":0.0594110346,""radial_glia"":0.1539441058,""microglia"":0.0224593362,""macrophage"":0.0300658893,""astrocyte"":0.0996221719,""oligodendrocyte_precursor_cell"":0.0051255739,""mature_oligodendrocyte"":0.0223153229,""schwann_cell_precursor"":0.029507684,""myelinating_schwann_cell"":0.0360644031,""nonmyelinating_schwann_cell"":0.4626932582,""endothelial_cell"":0.0006433937,""mural_cell"":0.0}","Cluster","scid_engram_fear_traned"

可以看到,JSON字符串的键两边有双引号。我怀疑这就是问题所在,但不确定。如果这是导致导入失败的原因,我不知道如何避免这样的引用发生。在我尝试存储JSON字符串之前,csv.QUOTE_ALL一直在为我工作。

EN

回答 1

Stack Overflow用户

发布于 2019-02-16 11:56:14

最后,我只用以下命令替换了row[3]中的一些字符,这些字符可以很好地工作(相同的QUOTE_ALL):

代码语言:javascript
复制
row[3].replace('"', '\\"').replace('\n', '\\n')

在读取前端的字段时,我需要替换后面的字符:

代码语言:javascript
复制
JSON.parse(jsonStr.replace(/\\"/g, '"'))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54697402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档