2017-06-24 102 views
-1

我有一个字符串,我从一个MongoDB的出口进入一个CSV:下面是一个例子:如何将此字符串转换为Python中的字典?

[{"group":"Most Common","id":"00000000000002","name":"HVAC Specialists","name_singular":"HVAC Specialist"},{"group":"Other","id":"00000000001","name":"Hauling \u0026 Junk Removers","name_singular":"Hauling \u0026 Junk Remover"}] 

我试图把日期变成一个字典,所以我可以拉出来什么,我需要和导出。

我试过放入一个列表,但它创建了每个字母的元素。

的字符串是一个txt文件,我称它是这样的:

python stringwork.py thestring.txt 

我看到this question,并试图此:

from sys import argv 
import json 

# filename = argv 

txt = open(argv[1]) 

json.loads(str(txt)) 

而且我得到了下面的错误。

ValueError: No JSON object could be decoded 
+0

我有点困惑。你正在从'argv [1]'你在问题中提供的文本行读到什么? – idjaw

+0

我复制了你的字符串并使用了'json.loads'调用,并且它工作正常。我不确定您的脚本的确切输入是什么,但根据您提供的内容,我无法真正复制。 – idjaw

+0

我试过用这个字符串,没有问题。也许你的输入'argv'错了? – GAVD

回答

1

txt变量是一个文件对象,不能转换为字符串。所以你应该阅读文件对象的内容,如txt = open(argv[1]).readlines()。然后,您可以使用txt[0]获取txt列表中的字符串。

#!/usr/bin/env python 
# -*- coding: utf-8 -*- 

from sys import argv 
import json 

filename = argv 

txt = open(argv[1]).readlines() 

a = json.loads(str(txt[0])) 
print(a) 
1

您在这里有点糊涂:

txt = open(argv[1]) 
json.loads(str(txt)) 

在此之后,txt是一个文件对象,而不是实际的字符串。

对于你需要做这样的事情:

txt = open(argv[1]).read() 
json.loads(txt) 

这里txt已经与该文件内容的字符串,所以没有必要str

检查documentation阅读/写入文件。

相关问题