如何从Python中的CSV文件中提取JSON对象?

如何从Python中的CSV文件中提取JSON对象?,python,json,python-2.7,csv,Python,Json,Python 2.7,Csv,我正在从csv文件(而不是整个文件)中提取列值。这些值采用JSON格式,如下所示: {u'Other': {'Text': 'Telephone', 'start': 45, 'end': 54, u'value': u'contact information'}} 我可以使用以下代码将这些值放入列表中(json objects=[6]表示csv文件中的第七列): 如何将列提取为JSON;不作为列表?这应该满足您的要求: #!/usr/bin/python import csv import

我正在从csv文件(而不是整个文件)中提取列值。这些值采用JSON格式,如下所示:

{u'Other': {'Text': 'Telephone', 'start': 45, 'end': 54, u'value': u'contact information'}}
我可以使用以下代码将这些值放入列表中(json objects=[6]表示csv文件中的第七列):


如何将列提取为JSON;不作为列表?

这应该满足您的要求:

#!/usr/bin/python

import csv
import json

with open('csv', 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='"')
    for row in reader:
        single_json = row[6]
        single_json = single_json.replace("u'", "'")
        single_json = single_json.replace("'", '"')
        data = json.loads(single_json)
        print json.dumps(data, indent=4)
名为“csv”的输入文件:

输出:

{
    "Other": {
        "Text": "Telephone",
        "end": 54,
        "value": "contact information",
        "start": 45
    }
}

您尝试过json库中的json.loads吗?是的,尝试了json.loads和json.dumps。不幸的是,两者都不起作用。你能提供一个最小的csv文件示例吗?当然,这里有一个最小的示例,你可以放在csv文件2840中,测试类别标签突出显示,843635,0,其他,“{u'Other':{'Text':'Telephone',start':45,'end':54,u'value':u'contact information'}”,8,7,FALSE,您在csv文件中显示的是第7列的片段吗?你想要JSON吗?它只是
single\u json=row[6]
。请注意,如果JSON包含用于编码csv的相同字符(例如,其中一个JSON字符串有一个逗号),csv阅读器会将其拆分为更多列。非常感谢,
data=JSON.loads(single\u JSON)
@You\u got\u it:Post the traceback似乎有问题。这个解决方案适用于您提供的示例。这里是
C:\Python27\python.exe C:/Users/bla.py回溯(最后一次调用):文件“C:/Users/bla.py”,第11行,在data=json.loads(single_json)文件“C:\Python27\lib\json\\\ init\ uuuuuuuuuuuuuuuuuu.py”中,第338行,在loads返回的默认解码器.decode(s)文件中“C:\Python27\lib\json\decoder.py”,第366行,在decode obj中,end=self.raw_decode(s,idx=_w(s,0.end())文件“C:\Python27\lib\json\decoder.py”,第382行,在raw_decode obj中,end=self.scan_一次(s,idx)值错误:应为属性名称:第1行第2列(字符1)进程结束,退出代码为1
@You_got_it:在json.loads行之前放置一个单独的打印json,并将输出粘贴到此处。您的json输入仍然存在问题。好的,我现在也可以看到输出。但是,程序仍然崩溃。
2840,test_category_labeling_highlight,84,3635,0,Other,"{u'Other': {'Text': 'Telephone', 'start': 45, 'end': 54, u'value': u'contact information'}}",8,7,FALSE
{
    "Other": {
        "Text": "Telephone",
        "end": 54,
        "value": "contact information",
        "start": 45
    }
}