#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()