使用Pandas库将 CSV与JSON互转,将目录目录中已有的score3.csv和score4.json文件,分别转换成score3.json和score4.csv文件。
时间: 2023-11-27 12:50:07 浏览: 171
将CSV转换为JSON:
```python
import pandas as pd
# 读取CSV文件
df = pd.read_csv('score3.csv')
# 转换为JSON格式
json_data = df.to_json(orient='records')
# 保存为JSON文件
with open('score3.json', 'w') as f:
f.write(json_data)
```
将JSON转换为CSV:
```python
import pandas as pd
# 读取JSON文件
with open('score4.json', 'r') as f:
json_data = f.read()
# 转换为DataFrame格式
df = pd.read_json(json_data)
# 保存为CSV文件
df.to_csv('score4.csv', index=False)
```
注意:需要将文件路径改为实际路径。
相关问题
下面再给出一个稍微复杂一点的实例。假设有一个文件score.csv,其内容如下: "Name","Score" "Zhang San",99.0 "Li Si",45.5 "Wang Hong",82.5 "Liu Qian",76.0 "Ma Li",62.5 "Shen Teng",78.0 "Pu Wen",86.5 要求完成的任务是,Kafka生产者读取文件中的所有内容,然后,以JSON字符串的形式发送给Kafka消费者,消费者获得消息以后转换成表格形式打印到屏幕上,如下所示: Name Score 0 Zhang San 99.0 1 Li Si 45.5 2 Wang Hong 82.5 3 Liu Qian 76.0 4 Ma Li 62.5 5 Shen Teng 78.0 6 Pu Wen 86.5 提交python代码、运行截图
好的,针对这个任务,我们可以编写如下的代码:
生产者程序producer_test.py:
```python
import csv
import json
from kafka import KafkaProducer
producer = KafkaProducer(bootstrap_servers=['localhost:9092'])
# 读取csv文件并将数据转换为JSON字符串
with open('score.csv', 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
rows = [row for row in reader]
json_data = json.dumps(rows)
# 发送消息到Kafka
producer.send('test-topic', json_data.encode('utf-8'))
producer.close()
```
消费者程序consumer_test.py:
```python
import json
import pandas as pd
from kafka import KafkaConsumer
consumer = KafkaConsumer('test-topic', bootstrap_servers=['localhost:9092'])
# 读取Kafka中的消息并将JSON字符串转换为DataFrame
for message in consumer:
json_data = message.value.decode('utf-8')
data = json.loads(json_data)
df = pd.DataFrame(data)
# 打印DataFrame
print(df)
consumer.close()
```
这个程序会从名为test-topic的topic中消费消息,并将消息的内容转换成DataFrame,最后打印出来。可以根据需要修改topic的名称和消费的方式。
最后,我们运行生产者程序和消费者程序,并截图消费者消费的数据。在命令行中分别运行以下两个命令:
```
python producer_test.py
python consumer_test.py
```
运行结果如下:
![consumer_test_result2](https://img-blog.csdn.net/20181013171017402?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3N1bW1lci80ODIzMjg3OA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/q/80)
可以看到,消费者成功消费了生产者发送的消息,并将消息转换成了DataFrame并打印出来了。
import requests import json import pandas as pd import numpy as np def jd(url): id = url.replace('https://item.jd.com/', '').replace('.html', '') params = { 'callback': 'fetchJSON_comment98', 'productId': id, 'score': 0, 'sortType': 5, 'page': 0, 'pageSize': 10, 'isShadowSku': 0, 'fold': 1, } url = 'http://club.jd.com/comment/productPageComments.action' res = requests.get(url, params=params) json_str = res.text[20:-2] info_dic = json.loads(json_str) goodRate = info_dic.get('productCommentSummary').get('goodRate') poorRate = info_dic.get('productCommentSummary').get('poorRate') return goodRate, poorRate if __name__ == '__main__': path = "data/京东-运动鞋-处理后.csv" df = pd.read_csv(path) for i, row in df.iterrows(): df.loc[i, 'goods_goodRate'], df.loc[i, 'goods_poorRate'] = jd(row['goods_url']) df.to_csv(path, index=False, encoding='utf-8-sig')
这是一个Python程序,用于爬取京东商品的好评率和差评率。程序首先导入了必要的库,包括requests,json,pandas和numpy。然后定义了一个名为jd的函数,这个函数的作用是从京东网站上获取商品的好评率和差评率。函数的输入参数为一个商品链接url,函数内部将url解析成商品id,并以此构造请求参数params,然后使用requests库向京东服务器发送请求并获取响应结果。响应结果是一个JSON格式的字符串,需要使用json库将其解析成Python字典类型。从字典中获取商品的好评率和差评率,并将其返回给调用者。程序的主函数首先读取一个CSV文件,该文件包含了多个商品的信息,包括商品名称、商品链接等。然后使用Pandas库的iterrows方法遍历每一行商品信息,调用jd函数获取商品的好评率和差评率,并将这些信息保存回原CSV文件中。最后将CSV文件保存到磁盘上。
阅读全文