2016-09-15 2 views
1

Я потоковом данные и данные сохраняются в файл JSON, как этотHandling API данных питона щебет либо с CSV или JSON

with open('filename.json', 'a') as f: 
    f.write(data) 

Теперь я хочу, чтобы прочитать данные для дальнейшего анализа. Чтобы просто использовать json-файл в другой программе, самое простое, что я мог бы сделать.

import json 
with open('D:\Devotion of time\Data\paralympics.json') as f: 
data= json.load(f) 
or 
data= json.loads(f.read()) 

В обоих случаях я получаю ошибку ниже: -

c:\python27\lib\json\__init__.pyc in load(fp, encoding, cls, object_hook,      
parse_float, parse_int, parse_constant, object_pairs_hook, **kw) 
276   parse_float=parse_float, parse_int=parse_int, 
277   parse_constant=parse_constant,           
object_pairs_hook=object_pairs_hook, 
278   **kw) 
279 
280 

c:\python27\lib\json\__init__.pyc in loads(s, encoding, cls, object_hook,  
parse_float, parse_int, parse_constant, object_pairs_hook, **kw) 
324    parse_int is None and parse_float is None and 
325    parse_constant is None and object_pairs_hook is None and not 
kw): 
326   return _default_decoder.decode(s) 
327  if cls is None: 
328   cls = JSONDecoder 

c:\python27\lib\json\decoder.pyc in decode(self, s, _w) 
367   end = _w(s, end).end() 
368   if end != len(s): 
369    raise ValueError(errmsg("Extra data", s, end, len(s))) 
370   return obj 
371 

ValueError: Extra data: line 3 column 1 - line 107 column 1 (char 13127 - 394133) 

Если я переключиться на что-то другое, как этот

data = [] 
with open('file') as f: 
for line in f: 
    data.append(json.loads(line)) 

Тогда я получаю AttributeError: «ул 'объект не имеет атрибута' read ' также иногда ValueError: объект JSON не может быть декодирован

Я искал решение, но ничего не помогло. Я также попытался прочитать его с Pandas (pd.read_json()), но та же проблема.

* Что я хочу делать с данными, это превратиться в файл csv или если это json, поэтому попробуйте как-то использовать его легко. Данные выглядят как this

так Как с этим бороться? я должен изменить программу или что-то еще? Или любое лучшее предложение по работе с данными твиттера. *

Работа с Python27, win10, tweepy.

ответ

1

В вашем файле не содержится ни одного объекта JSON, кроме нескольких объектов JSON в каждой строке. Вы можете анализировать каждую строку следующим образом:

with open('t.txt', 'r') as f: 
    res = [] 
    for line in f: 
     if line.strip() != '': # The sample file also has empty lines 
      res.append(json.loads(line)) 
+0

спасибо, выглядит это сработало. –

Смежные вопросы