如何在python中将此字符串转换为dict?

时间:2017-06-24 01:11:14

标签: python json string csv

我有一个从mongodb导出到csv的字符串:这是一个例子:

python stringwork.py thestring.txt

我试图把日期写进dict,这样我就可以拿出我需要的东西并将其导出。

我尝试将其放入列表中,但它会在每个字母中创建元素。

字符串位于txt文件中,我这样称呼它:

from sys import argv
import json

# filename = argv

txt = open(argv[1])

json.loads(str(txt))

我看到了this question并尝试了这个:

ValueError: No JSON object could be decoded

我收到了以下错误。

my build.sbt looks like this


name := "Kafak"


version := "1.0"


scalaVersion := "2.12.2"


libraryDependencies += "com.google.code.gson" % "gson" % "2.8.1"


libraryDependencies += "org.apache.kafka" % "kafka-clients" % 
"0.10.2.1"


libraryDependencies += "org.slf4j" % "slf4j-simple" % "1.6.1"


// https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-
 client
libraryDependencies += "org.apache.hadoop" % "hadoop-client" % 
"3.0.0-alpha3"


// https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-


core
    libraryDependencies += "org.apache.hadoop" % "hadoop-core" % 
   "2.6.0-mr1-cdh5.9.0"

2 个答案:

答案 0 :(得分:1)

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

#!/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 :(得分:1)

你在这里有点困惑:

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

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

为此,你需要做这样的事情:

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

此处txt已经是包含文件内容的字符串,因此无需str

检查读/写文件documentation