У меня есть JSON-файл, содержащий 46k + твитов на английском и других языках, которые я хочу сохранить в виде csv-файла.Ниже приведена часть файла json.
[{"user_id": 938118866135343104, "date_time": "03/20/2018 18:38:35", "tweet_content": "RT @PTISPOfficial: پاکستان تحریک انصاف کے وائس چیئرمین شاہ محمود قریشی بغیر کسی پروٹوکول کے پاکستان سپر لیگ کا میچ دیکھنے کے لئے اسٹیڈیم م…", "tweet_id": 976166125502427136}
{"user_id": 959235642, "date_time": "03/20/2018 18:38:35", "tweet_content": "At last, Pakistan Have Witnessed The Most Thrilling Match Of Cricket In Pakistan, The Home. \n\n#PZvQG \n#ABC", "tweet_id": 976166125535973378}
{"user_id": 395163528, "date_time": "03/20/2018 18:38:35", "tweet_content": "RT @thePSLt20: SIX! 19.4 Liam Dawson to Anwar Ali\nWatch ball by ball highlights at (link removed)\n\n#PZvQG #HBLPSL #PSL2018 @_crici…", "tweet_id": 976166126202839040}
{"user_id": 3117825702, "date_time": "03/20/2018 18:38:35", "tweet_content": "RT @JeremyMcLellan: Rumor has it Amir Liaquat isn’t allowed to play in #PSL2018 because he keeps switching teams every week.", "tweet_id": 976166126483902466}
{"user_id": 3310967346, "date_time": "03/20/2018 18:38:35", "tweet_content": "RT @daniel86cricket: Peshawar beat Quetta by 1 run in one of the best T20 thrillers. PSL played in front of full house in Lahore Pakistan i…", "tweet_id": 976166126559354880}
{"user_id": 701494826194354179, "date_time": "03/20/2018 18:38:35", "tweet_content": "I wanted a super over?\n#PZvQG", "tweet_id": 976166126836178944}
{"user_id": 347132028, "date_time": "03/20/2018 18:38:35", "tweet_content": "RT @hinaparvezbutt: Congratulations Peshawar Zalmi over great win but Quetta Gladiators won our hearts ♥️ #PZvQG", "tweet_id": 976166126685171713}
{"user_id": 3461853618, "date_time": "03/20/2018 18:38:35", "tweet_content": "RT @walterMiitty: It's harder than I thought to tell the truth\nIt's gonna leave you in pieces\nAll alone with your demons\nAnd I know that we…", "tweet_id": 976166126924201986}]
Я следовал этому решению , чтобы преобразовать его в CSV, но получил недопустимую синтаксическую ошибку в твите урду.Я также попробовал это:
import json
with open("PeshVsQuetta.json") as f:
all_tweets = []
for line in f:
text_dict = json.loads(line)
all_tweets.append(text_dict)
print(all_tweets[0]['tweet_content'])
, что дает мне следующую ошибку.
UnicodeDecodeError: 'charmap' codec can't decode byte 0x8f in position 148: character maps to <undefined>
Я даже сохранил файл json как текстовый файл и попробовал это:
import pandas as pd
from ast import literal_eval
columns = ['Tweet ID','Author ID','Tweet','Time']
df1 = pd.DataFrame(columns = columns)
f = open('PeshvsQuetta.txt',encoding = 'utf-8')
counter = 1
for line in f:
if(counter != 1):
s1 = literal_eval(line)
ser = pd.Series([s1['tweet_id'],s1['user_id'],s1['tweet_content'],s1["date_time"]],index=['Tweet ID','Author ID','Tweet','Time'])
df1 = df1.append(ser,ignore_index=True)
counter = counter + 1
df1.to_csv('PeshVsQuetta1.csv', encoding='utf-8',index=False,columns = columns)
Но в результирующем CSV-файле каждая серия сохраняется в одной ячейке, и в ней много пустых строк, а некоторые твиты сохраняются в нескольких строках.Ниже приведено изображение.
Любая помощь будет принята с благодарностью.