打开 JSON txt 文件并将其设置为 DataFrame 时发生 KeyError
KeyError occures while opening the JSON txt file and setting it up into a DataFrame
我有一个代码,它给了我一个没有保存推文的空 DataFrame。
我试图通过将 print(line)
放在 json 文件中的 for 行下来调试它:和 json_data = json.loads(line)
。
结果是 KeyError
。
我如何解决它?
谢谢你。
list_df = list()
# read the .txt file, line by line, and append the json data in each line to the list
with open('tweet_json.txt', 'r') as json_file:
for line in json_file:
print(line)
json_data = json.loads(line)
print(line)
tweet_id = json_data['tweet_id']
fvrt_count = json_data['favorite_count']
rtwt_count = json_data['retweet_count']
list_df.append({'tweet_id': tweet_id,
'favorite_count': fvrt_count,
'retweet_count': rtwt_count})
# create a pandas DataFrame using the list
df = pd.DataFrame(list_df, columns = ['tweet_id', 'favorite_count', 'retweet_count'])
df.head()
你的评论说你正在尝试保存到一个文件,但你的代码有点说你正在尝试从文件中读取。以下是如何执行这两项操作的示例:
正在写入 JSON
import json
import pandas as pd
content = { # This just dummy data, in the form of a dictionary
"tweet1": {
"id": 1,
"msg": "Yay, first!"
},
"tweet2": {
"id": 2,
"msg": "I'm always second :("
}
}
# Write it to a file called "tweet_json.txt" in JSON
with open("tweet_json.txt", "w") as json_file:
json.dump(content, json_file, indent=4) # indent=4 is optional, it makes it easier to read
注意 open("tweet_json.txt", "w")
中的 w
(如 w 仪式)。您正在使用 r
(如 read),它不允许您写任何东西。另请注意使用 json.dump()
而不是 json.load()
。然后我们得到一个如下所示的文件:
$ cat tweet_json.txt
{
"tweet1": {
"id": 1,
"msg": "Yay, first!"
},
"tweet2": {
"id": 2,
"msg": "I'm always second :("
}
}
正在阅读 JSON
让我们读取我们刚刚写入的文件,使用 pandas read_json()
:
import pandas as pd
df = pd.read_json("tweet_json.txt")
print(df)
输出如下所示:
>>> df
tweet1 tweet2
id 1 2
msg Yay, first! I'm always second :(
我有一个代码,它给了我一个没有保存推文的空 DataFrame。
我试图通过将 print(line)
放在 json 文件中的 for 行下来调试它:和 json_data = json.loads(line)
。
结果是 KeyError
。
我如何解决它?
谢谢你。
list_df = list()
# read the .txt file, line by line, and append the json data in each line to the list
with open('tweet_json.txt', 'r') as json_file:
for line in json_file:
print(line)
json_data = json.loads(line)
print(line)
tweet_id = json_data['tweet_id']
fvrt_count = json_data['favorite_count']
rtwt_count = json_data['retweet_count']
list_df.append({'tweet_id': tweet_id,
'favorite_count': fvrt_count,
'retweet_count': rtwt_count})
# create a pandas DataFrame using the list
df = pd.DataFrame(list_df, columns = ['tweet_id', 'favorite_count', 'retweet_count'])
df.head()
你的评论说你正在尝试保存到一个文件,但你的代码有点说你正在尝试从文件中读取。以下是如何执行这两项操作的示例:
正在写入 JSON
import json
import pandas as pd
content = { # This just dummy data, in the form of a dictionary
"tweet1": {
"id": 1,
"msg": "Yay, first!"
},
"tweet2": {
"id": 2,
"msg": "I'm always second :("
}
}
# Write it to a file called "tweet_json.txt" in JSON
with open("tweet_json.txt", "w") as json_file:
json.dump(content, json_file, indent=4) # indent=4 is optional, it makes it easier to read
注意 open("tweet_json.txt", "w")
中的 w
(如 w 仪式)。您正在使用 r
(如 read),它不允许您写任何东西。另请注意使用 json.dump()
而不是 json.load()
。然后我们得到一个如下所示的文件:
$ cat tweet_json.txt
{
"tweet1": {
"id": 1,
"msg": "Yay, first!"
},
"tweet2": {
"id": 2,
"msg": "I'm always second :("
}
}
正在阅读 JSON
让我们读取我们刚刚写入的文件,使用 pandas read_json()
:
import pandas as pd
df = pd.read_json("tweet_json.txt")
print(df)
输出如下所示:
>>> df
tweet1 tweet2
id 1 2
msg Yay, first! I'm always second :(