【发布时间】:2014-10-31 16:29:14
【问题描述】:
我在使用 json.loads 转换为 dict 对象时遇到问题,我无法弄清楚我做错了什么。我运行它的确切错误是
ValueError: Expecting property name: line 1 column 2 (char 1)
这是我的代码:
from kafka.client import KafkaClient
from kafka.consumer import SimpleConsumer
from kafka.producer import SimpleProducer, KeyedProducer
import pymongo
from pymongo import MongoClient
import json
c = MongoClient("54.210.157.57")
db = c.test_database3
collection = db.tweet_col
kafka = KafkaClient("54.210.157.57:9092")
consumer = SimpleConsumer(kafka,"myconsumer","test")
for tweet in consumer:
print tweet.message.value
jsonTweet=json.loads(({u'favorited': False, u'contributors': None})
collection.insert(jsonTweet)
我很确定错误发生在倒数第二行
jsonTweet=json.loads({u'favorited': False, u'contributors': None})
但我不知道该怎么做才能修复它。任何建议将不胜感激。
【问题讨论】:
-
您在那里看到语法错误吗?一个流浪
"是复制粘贴错误吗? -
print tweet.message.value行打印出的 JSON 字符串是什么? -
ValueError发送是因为 JSON 输入中的错误,而不是您的代码中的问题。 (除了缺少的",他通常应该发送SyntaxError,所以我认为这只是一个复制粘贴错误。) -
(顺便说一句,utf_8 是 json.loads 的默认编码,所以不需要指明。)
-
感谢您的意见。编辑了问题,现在应该更清楚了。