Как импортировать файл JSON в Pandas Dataframe - PullRequest
0 голосов
/ 04 февраля 2019

Я использовал несколько разных подходов к загрузке этих данных в Pandas.Если у кого-то есть какие-либо предложения по поводу этих исключений, мы будем очень признательны!Имя файла изменяется в некоторых примерах между tweet_json.txt и tweet_json.json, так как я пробовал разные методы.

with open('tweet_json.json', 'r') as f:
    data = json.load(f)
df_3 = pd.DataFrame(data)

приводит к: JSONDecodeError: Extra data: line 2 column 1 (char 3974)

df_3 = pd.read_json('tweet_json.json', lines = True)

приводит к: ValueError: Unexpected character found when decoding object value

with open('tweet_json.txt') as file:
    status = []
    for line in file:
        data = json.loads(line)
df_3 = pd.Dataframe(data)

приводит к: JSONDecodeError: Expecting ',' delimiter: line 1 column 1626 (char 1625)

Единственный раз, когда у меня был какой-либо удаленный успех, было использование json.dumps (), но это просто загрузило его в один столбец данных без каких-либо данных.и что json выглядит как многоуровневый словарь, я понятия не имел, как его разделить:

data = []
with open('tweet_json.json') as f:    
    for line in f:         
         data.append(json.dumps(line))
df_3 = pd.DataFrame(data)  

Ответы [ 2 ]

0 голосов
/ 04 февраля 2019

Это был способ, которым я решил это.Мне не хватало определения, какие столбцы специально импортировать и использовать карту.Я до сих пор не знаю, как просто импортировать весь JSON в df, но это делает то, что мне нужно.

tweets_data = []
tweet_file = open('tweet_json.txt', "r")
for line in tweet_file:
    try:
        tweet = json.loads(line)
        tweets_data.append(tweet)
    except:
        continue   
tweet_file.close()
tweet_info = pd.DataFrame()
tweet_info['id'] = list(map(lambda tweet: tweet['id'], tweets_data))
tweet_info['retweet_count'] = list(map(lambda tweet: tweet['retweet_count'], tweets_data))
tweet_info['favorite_count'] = list(map(lambda tweet: tweet['favorite_count'], tweets_data))
0 голосов
/ 04 февраля 2019

Вы можете использовать json_normalize или read_json , чтобы прочитать файл json в кадр данных.

Если у вас есть вложенные структуры json, вы также можете использовать from_records функция

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...