2017-06-24 137 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閱讀/寫入文件。

相關問題