Ошибка при попытке заставить pandas прочитать мой файл json

#python #json #pandas

#python #json #pandas

Вопрос:

Я получаю ValueError: Expected object or value при попытке заставить pandas прочитать мой файл json.

Вот код, который я использую:

 import pandas as pd
import json
dataframe = pd.read_json(r'C:UsersstansWFH Projectdata.json')
 

Это когда я получаю ошибку значения. Я сохранил данные json в виде текстового файла с .расширение json.

Вот пример:

 {
    'created_at': 'Thu Dec 24 10:09:36  0000 2020',
    'id': 1342049779233284097,
    'id_str': '1342049779233284097',
    'text': 'RT @ab: S2E13 IntelAI podcast—from #AI beating world chess champs to solving the grand research challenge known as the #protein…',
    'truncated': False,
    'entities': {
        'hashtags': [{
                'text': 'AI',
                'indices': [47, 50]
            }
 

Я даже попытался сохранить файл json в pwd, чтобы узнать, была ли проблема с путем к каталогу, но я получил ту же ошибку. Буду признателен за любую помощь в этом. Спасибо.

Комментарии:

1. Вы уверены, что ваш JSON действителен? Образец определенно нет.

2. Да, похоже, что JSON недействителен. Я прошел через JSONLint, и это привело к ошибкам синтаксического анализа. Я пытался правильно его отформатировать, но все равно получал ошибки. Боюсь, у меня нет большого опыта в правильном форматировании JSON. Есть идеи о том, как исправить код JSON?

3. Я добавил ответ с тем, что я бы сделал с JSON.

Ответ №1:

Попробуйте этот обновленный JSON. Я заменил все ' на " , заменил False на false и закрыл все массивы / объекты…

 {
    "created_at": "Thu Dec 24 10:09:36  0000 2020",
    "id": 1342049779233284097,
    "id_str": "1342049779233284097",
    "text": "RT @ab: S2E13 IntelAI podcastu2014from #AI beating world chess champs to solving the grand research challenge known as the #proteinu2026",
    "truncated": false,
    "entities": {"hashtags": [{
        "text": "AI",
        "indices": [47, 50]
        }]
    }
}
 

Ответ №2:

Используйте косую черту (‘/’) для вашего пути. Если не работает, попробуйте ниже.

 import pandas as pd
with open('C:/Users/stans/WFH Project/data.json', 'r') as f:
    data = json.load(f)
df = pd.DataFrame(data)```
 

Комментарии:

1. Спасибо за это, но теперь я получаю «Ошибка значения: при использовании всех скалярных значений вы должны передать индекс»

2. Понял, пришлось передать функцию index объекту df. Еще раз спасибо!

Ответ №3:

 import json
import panda as pd 
   
f = open('C:/Users/stans/WFH Project/data.json',) 
data = json.load(f) 
df = pd.DataFrame(data)
f.close()